青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0

版權聲明:轉載時請以超鏈接形式標明文章原始出處和作者信息及本聲明
http://xufish.blogbus.com/logs/40537374.html

012號與013 號程序,分別是關于消息隊列和共享內存的

/*********************程序相關信 息*********************
程序編號:012
程序編寫起始日期:2008.11.1
程序編寫完成日期:2008.11.1
程序修改日 期:                                   修改備注:
程序目的:學習linux消息隊列通信
所用主要函 數:msgget(),msgsnd(),msgrcv(),msgctl()
程序 存疑:
程序完成地點: 宿舍內
*********************程序相關信息*********************/
#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/msg.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
    int pid,msqid;//后者為消息隊列識別代號
    struct msgbuf
    {
        long mtype;//消息類型
        char mtext[20];//消息內容
    }send_buf,receive_buf;
    if((msqid=msgget(IPC_PRIVATE,0700))<0)//建立消息隊列
    {
        printf("msgget建立消息隊列失敗。\n");
        exit(1);
    }
    else
        printf("msgget建立消息隊列成功,該消息隊列識別代號為%d。\n",msqid);
    if((pid=fork())<0)
    {
        printf("fork()函數調用失敗!\n");
        exit(2);
    }
    else if(pid>0)//父進程,發送消息到消息隊列
    {
        send_buf.mtype=1;
        strcpy(send_buf.mtext,"My test information");
        printf("發送到消息隊列的信息內容為:%s\n",send_buf.mtext);
        if(msgsnd(msqid,&send_buf,20,IPC_NOWAIT)<0)//發送send_buf中的信息到msqid 對應的消息隊列
        {
            printf("msgsnd消息發送失敗。\n");
            exit(3);
        }
        else
            printf("msgsnd消息發送成功。\n");
        sleep(2);
        exit(0);
    }
    else//子進程,從消息隊列中接收消息]
    {
        sleep(2);//等待父進程發送消息完成
        int infolen;//讀到的信息數據長度
        if((infolen=msgrcv(msqid,&receive_buf,20,0,IPC_NOWAIT))<0)//自消息隊列 接收信息
        {
            printf("msgrcv讀取信息錯誤。\n");
            exit(4);
        }
        else
            printf("msgrcv讀取信息成功。\n");
        printf("自消息隊列讀取到的內容為%s,共讀取%d個字節。\n",receive_buf.mtext,infolen);
        if((msgctl(msqid,IPC_RMID,NULL))<0)//刪除msqid對應的消息隊列
        {
            printf("msgctl函數調用出現錯誤。\n");
            exit(5);
        }
        else
        {
            printf("識別代號為%d的消息隊列已經被成功刪除。\n",msqid);
            exit(0);
        }
    }
}
/*********************程序運行結 果*********************
[root@localhost temp]# ./msg
msgget建立消息隊列成功,該消息隊列識別代號為 98304。
發送到消息隊列的信息內容為:My test information
msgsnd消息發送成功。
msgrcv讀取信息成功。
自消息隊列讀取到的內容為My test information,共讀取20個字節。
識別代號為98304的消息 隊列已經被成功刪除。
***********************************************************/

/********************* 程序相關信息*********************
程序編號:013
程序編寫起始日期:2008.11.1
程序編寫完成日期:2008.11.1
程序修改日 期:                                   修改備注:
程序目的:學習linux共享內存
所用主要函 數:shmget(),shmat(),shmctl(),shmdt()
程序存 疑:
程序完成地點: 宿舍內
*********************程序相關信息*********************/
#include<sys/ipc.h>
#include<sys/shm.h>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
int main()
{
    int pid,shmid;//后者為共享內存識別代號
    char *write_address;
    char *read_address;
    struct shmid_ds dsbuf;
    if((shmid=shmget(IPC_PRIVATE,32,0))<0)//分配共享內存
    {
        printf("shmid共享內存分配出現錯誤。\n");
        exit(1);
    }
    else
        printf("shmid共享內存分配成功,共享內存識別代號為:%d。\n",shmid);
    if((pid=fork())<0)
    {
        printf("fork函數調用出現錯誤!\n");
        exit(2);
    }
    else if(pid>0)//父進程,向共享內存中寫入數據
    {
        printf("父進程的ID是:%d\n",getpid());
        write_address=(char *)shmat(shmid,NULL,0);//連接共享內存
        if((int)write_address==-1)
        {
            printf("shmat連接共享內存錯誤。\n");
            exit(3);
        }
        else
        {
            printf("shmat連接共享內存成功。\n");
            strcpy(write_address,"我是寫入共享內存的測試數據");//將數據寫入共享內存
            printf("寫入共享內存的信息為“%s”。\n",write_address);
            if((shmdt((void *)write_address))<0)//斷開與共享內存的連接
                printf("shmdt共享內存斷開錯誤。\n");
            else
                printf("shmdt共享內存斷開成功。\n");
            sleep(2);
            return;
        }
    }
    else//子進程,從共享內存中讀取數據
    {
        sleep(2);//等待父進程寫入共享內存完畢
        printf("子進程ID是:%d\n",getpid());
        if((shmctl(shmid,IPC_STAT,&dsbuf))<0)
        {
            printf("shmctl獲取共享內存數據結構出現錯誤。\n");
            exit(4);
        }
        else
        {
            printf("shmctl獲取共享內存數據結構成功。\n建立這個共享內存的進程ID是:%d\n",dsbuf.shm_cpid);
            printf("該共享內存的大小為:%d\n",dsbuf.shm_segsz);
            if((read_address=(char *)shmat(shmid,0,0))<0)//連接共享內存
            {
                printf("shmat連接共享內存出現錯誤。\n");
                exit(5);
            }
            else
            {
                printf("自共享內存中讀取的信息為:“%s”。\n",read_address);
                printf("最后一個操作該共享內存的進程ID是:%d\n",dsbuf.shm_lpid);
                if((shmdt((void *)read_address))<0)//斷開與共享內存的連接
                {
                    printf("shmdt共享內存斷開錯誤。\n");
                    exit(6);
                }
                else
                    printf("shmdt共享內存斷開成功。\n");
                if(shmctl(shmid,IPC_RMID,NULL)<0)//刪除共享內存及其數據結構
                {
                    printf("shmctl刪除共享內存及其數據結構出現錯誤。\n");
                    exit(7);
                }
                else
                    printf("shmctl刪除共享內存及其數據結構成功。\n");
                exit(0);
            }
        }    
    }
}
/*********************程序運行結 果*********************
[root@localhost temp]# ./shm
shmid共享內存分配成功,共享內存識別代號 為:1703947。
父進程的ID是:7647
shmat連接共享內存成功。
寫入共享內存的信息為“我是寫入共享內存的測試數據”。
shmdt 共享內存斷開成功。
子進程ID是:7648
shmctl獲取共享內存數據結構成功。
建立這個共享內存的進程ID是:7647
該共享內存的大小 為:32
自共享內存中讀取的信息為:“我是寫入共享內存的測試數據”。
最后一個操作該共享內存的進程ID是:7647
shmdt共享內存斷開成功。
shmctl刪除共享內存及其數據結構成功。
***********************************************************/

posted on 2010-07-14 10:43 chatler 閱讀(2072) 評論(1)  編輯 收藏 引用 所屬分類: Linux_Coding

FeedBack:
# re: linux的消息隊列與共享內存編程
2011-05-27 11:01 | 朱志超
內容選擇得很好,謝謝  回復  更多評論
  
<2011年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本大道久久a久久精品综合| 一本在线高清不卡dvd| 久久久久高清| 国产欧美一区二区白浆黑人| 亚洲欧美国产毛片在线| 欧美一二三区精品| 国产日本欧美一区二区| 久久国产日韩欧美| 欧美高清在线视频| 亚洲久久一区| 国产精品99一区二区| 午夜在线一区| 欧美激情中文不卡| 亚洲一区二区三区在线视频| 一区二区不卡在线视频 午夜欧美不卡'| 日韩一二三在线视频播| 国产精品一区二区久激情瑜伽| 欧美在线一区二区三区| 亚洲黄色在线| 亚洲一二三区精品| 国产欧美亚洲一区| 国产亚洲一区在线| 久久狠狠婷婷| 久久精品成人一区二区三区蜜臀| 国产精品黄色| 久久乐国产精品| 一区二区三区国产| 欧美高清在线| 久久久久久久尹人综合网亚洲| 艳女tv在线观看国产一区| 国产午夜亚洲精品理论片色戒| 欧美日韩国产在线一区| 蜜桃av综合| 小嫩嫩精品导航| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美在现视频| 亚洲日本欧美日韩高观看| 国产噜噜噜噜噜久久久久久久久| 欧美成人日本| 久久久综合免费视频| 欧美亚洲免费| 亚洲自拍偷拍网址| 亚洲精品欧美一区二区三区| 久久久久久久久久久久久久一区| 亚洲欧美精品一区| 一区二区国产日产| 亚洲国产精品综合| 红桃av永久久久| 国产精品综合网站| 国产精品嫩草久久久久| 欧美精品成人在线| 欧美成人嫩草网站| 欧美精品免费观看二区| 久久久亚洲国产美女国产盗摄| 欧美一级精品大片| 欧美一区二区三区视频免费| 一区二区欧美日韩视频| 日韩西西人体444www| 亚洲人成网站影音先锋播放| 欧美大片一区| 欧美mv日韩mv国产网站| 免费黄网站欧美| 米奇777超碰欧美日韩亚洲| 久久综合色天天久久综合图片| 久久精品国产视频| 久久久久九九九| 久久久亚洲高清| 久久久久国产精品一区| 欧美jizzhd精品欧美喷水| 欧美成人精品福利| 亚洲精品国产日韩| 亚洲成色777777在线观看影院| 国产一区二区av| 国产字幕视频一区二区| 韩日欧美一区二区| 亚洲电影免费观看高清完整版在线观看| 国产精品激情av在线播放| 国产精品美女在线| 国产乱码精品一区二区三区不卡 | 美女国内精品自产拍在线播放| 久久久久久自在自线| 久久人人爽爽爽人久久久| 欧美激情亚洲精品| 99ri日韩精品视频| 欧美一乱一性一交一视频| 久久一区视频| 欧美婷婷久久| 怡红院精品视频| 亚洲天堂av综合网| 久久夜色精品国产| 亚洲精品一区二区在线| 性欧美xxxx视频在线观看| 久久综合久久久久88| 欧美国产精品v| 国产女人aaa级久久久级| 亚洲福利国产精品| 亚洲一区二区三区午夜| 欧美大片在线影院| 亚洲欧美日韩另类| 欧美激情第3页| 国产综合亚洲精品一区二| 亚洲激情另类| 欧美在线播放视频| 亚洲美女诱惑| 久久亚洲国产精品一区二区| 国产精品久久久久77777| 在线观看欧美亚洲| 欧美一区二区久久久| 亚洲日本va在线观看| 久久久中精品2020中文| 国产毛片精品视频| 亚洲一区二区动漫| 欧美国产精品va在线观看| 亚洲综合社区| 欧美日韩视频在线第一区| 在线国产欧美| 久久久久国产一区二区三区四区| 亚洲一区二区成人| 欧美日韩综合另类| 91久久亚洲| 欧美.日韩.国产.一区.二区| 亚洲欧美文学| 亚洲精品国产精品久久清纯直播| 亚洲网站啪啪| 欧美精品 国产精品| 亚洲日本激情| 欧美好吊妞视频| 美女视频黄a大片欧美| 国内久久视频| 久久综合色88| 欧美+日本+国产+在线a∨观看| 国产日韩欧美精品一区| 欧美在线3区| 欧美一区二区三区啪啪| 国户精品久久久久久久久久久不卡 | 久久久亚洲一区| 欧美一区二区三区电影在线观看| 国产精品色在线| 欧美诱惑福利视频| 欧美中文在线字幕| 在线成人黄色| 亚洲国产精品久久人人爱蜜臀| 蜜桃视频一区| 一本色道久久99精品综合| 日韩视频一区二区在线观看| 欧美日韩美女| 香蕉久久久久久久av网站 | 久久婷婷av| 亚洲精品久久久久久久久久久久久| 亚洲国产91| 欧美日韩一区二区精品| 亚洲欧美自拍偷拍| 欧美在线免费看| 亚洲激情亚洲| 一区二区欧美精品| 国产一区二区三区在线观看免费视频| 久久在线播放| 欧美日韩国产成人在线91| 亚洲欧美在线磁力| 久久久久久久国产| 日韩亚洲一区在线播放| 新67194成人永久网站| 在线精品高清中文字幕| 9色porny自拍视频一区二区| 国产精品资源| 欧美黄色免费| 国产精品亚洲第一区在线暖暖韩国| 久久久蜜桃一区二区人| 欧美大片在线影院| 午夜精品国产精品大乳美女| 久久精品国产欧美激情| 一区二区三区免费观看| 久久成人综合网| 亚洲视屏在线播放| 久久亚洲精品欧美| 欧美一区二区三区日韩视频| 麻豆国产精品va在线观看不卡 | 国产精品久久久久久久久久妞妞| 久久伊人一区二区| 亚洲自拍都市欧美小说| 国产精品私拍pans大尺度在线| 久久久成人精品| 欧美日韩中文在线观看| 久久久精品日韩| 欧美午夜电影在线| 亚洲激情网站免费观看| 国产在线视频欧美一区二区三区| 亚洲毛片在线观看.| 伊人激情综合| 亚洲欧美日韩国产另类专区| 99re6热只有精品免费观看| 久久精品日韩欧美| 亚洲欧美日韩精品久久奇米色影视| 你懂的视频一区二区| 久久久久久久尹人综合网亚洲| 国产精品久久久久影院亚瑟| 亚洲国产综合91精品麻豆| 影音先锋欧美精品| 久久成人精品视频| 久久精品一区二区三区四区|