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

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 | 朱志超
內容選擇得很好,謝謝  回復  更多評論
  
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(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>
            亚洲精品国产欧美| 国产亚洲激情视频在线| 亚洲字幕在线观看| 国产精品日韩欧美一区二区三区 | 欧美韩日精品| 亚洲综合精品自拍| 免费亚洲电影在线| 亚洲与欧洲av电影| 亚洲天堂偷拍| 亚洲黑丝在线| 国产精品久久久久9999| 久久精品色图| 亚洲国产精品女人久久久| 久久久久国色av免费看影院| 亚洲国产另类精品专区 | 久热精品视频在线| 中国女人久久久| 欧美二区视频| 久久精品视频播放| 亚洲精品免费观看| 99视频超级精品| 韩国在线一区| 国产精品日日摸夜夜添夜夜av| 国产精品一区二区在线观看不卡| 欧美成人一区在线| 午夜精品影院在线观看| 在线亚洲一区观看| 99视频精品在线| 91久久综合| 久久欧美肥婆一二区| 午夜一级久久| 9久re热视频在线精品| 欧美在线观看一二区| 久久精品国产免费观看| 狠狠色丁香久久综合频道| 亚洲先锋成人| 欧美激情第3页| 亚洲视频一二区| 亚洲在线视频网站| 久久综合五月天婷婷伊人| 亚洲免费在线视频| 亚洲美洲欧洲综合国产一区| 国内揄拍国内精品少妇国语| 在线观看日韩精品| 国产亚洲人成网站在线观看| 亚洲看片网站| 欧美专区福利在线| 欧美一级午夜免费电影| 麻豆精品在线播放| 99日韩精品| 欧美成人午夜视频| 国产日韩欧美一二三区| 国产揄拍国内精品对白| 国产日韩欧美在线观看| 99精品视频免费观看| av成人免费| 久久欧美肥婆一二区| 亚洲天堂第二页| 欧美日韩精品一区二区三区| 欧美日本二区| 国产精品永久在线| 宅男在线国产精品| 久久本道综合色狠狠五月| 亚洲二区在线| 亚洲欧洲日夜超级视频| 久久精品盗摄| 国产伦精品一区二区三区在线观看| 在线视频中文亚洲| 欧美国产先锋| 欧美福利视频在线观看| 在线播放精品| 欧美大色视频| 玖玖精品视频| 亚洲国产精品一区二区www在线| 亚洲美女性视频| 蜜臀a∨国产成人精品| 欧美在线综合视频| 免费久久99精品国产自在现线| 欧美激情成人在线视频| 亚洲电影网站| 亚洲欧美综合国产精品一区| 久久久噜久噜久久综合| 亚洲欧美国产高清| 国产精品一区二区三区久久久| 亚洲欧美不卡| 欧美一级久久久| 能在线观看的日韩av| 亚洲精美视频| 亚洲一区二区三区乱码aⅴ| 性色av一区二区怡红| 国产精品99久久久久久久vr| 国产精品xxxxx| 亚洲国产91色在线| 欧美成人中文字幕在线| 久热精品视频在线观看| 亚洲国产一区二区三区a毛片 | 国产日韩一区二区| 六月丁香综合| 欧美日韩一区二区三区四区五区| 影音先锋中文字幕一区二区| 欧美国产综合| 欧美日韩视频一区二区| 久久尤物视频| 一本色道久久综合亚洲二区三区| 欧美xxx成人| 香蕉国产精品偷在线观看不卡 | 国产精品高潮呻吟久久av黑人| 久久国产毛片| 欧美日本中文字幕| 久久先锋资源| 国产精品毛片| 性欧美暴力猛交另类hd| 麻豆九一精品爱看视频在线观看免费| 狠狠色综合一区二区| 日韩视频第一页| 欧美午夜免费电影| 亚洲二区视频在线| 韩日成人在线| 亚洲午夜在线观看视频在线| 亚洲精选91| 免费观看在线综合| 久久五月激情| 国产一区二区激情| 亚洲午夜高清视频| 在线视频精品一| 欧美国产在线电影| 欧美国产日韩xxxxx| 一区二区三区在线视频播放| 亚洲成在人线av| 欧美电影打屁股sp| 久久久精彩视频| 久久精品首页| 久久久久成人精品免费播放动漫| 欧美视频一区二区| 久久久久99| 国产麻豆视频精品| 亚洲一级影院| 午夜亚洲性色福利视频| 欧美日韩理论| 99视频日韩| 亚洲男女自偷自拍图片另类| 欧美色一级片| 亚洲一区欧美二区| 亚洲电影一级黄| 免费不卡在线观看av| 免费不卡在线视频| 91久久精品国产91性色tv| 日韩亚洲综合在线| 亚洲一区二区伦理| 国产精品入口| 欧美性事免费在线观看| 毛片一区二区| 亚洲福利精品| 欧美精品免费播放| 久久久97精品| 精品不卡在线| 欧美高清不卡| 宅男噜噜噜66一区二区| 欧美在线看片| 在线看视频不卡| 欧美女同视频| 亚洲欧美日韩国产一区二区三区 | 欧美伊人久久大香线蕉综合69| 国产精品久久久久久久久免费桃花| 99国产精品视频免费观看| 午夜精品999| 国产亚洲精品美女| 免费影视亚洲| 亚洲网址在线| 男女av一区三区二区色多| 国产精品入口麻豆原神| 一区二区三区成人精品| 亚洲专区在线| 在线观看日韩www视频免费| 欧美日本不卡| 久久成人免费电影| 亚洲电影免费观看高清| 亚洲免费在线电影| 国产亚洲成av人片在线观看桃 | 亚洲一品av免费观看| 久久精品国产亚洲aⅴ| 在线观看亚洲视频| 欧美午夜理伦三级在线观看| 亚洲一区二区免费看| 久久精彩免费视频| 在线视频一区观看| 曰韩精品一区二区| 国产精品视频xxx| 欧美另类在线播放| 久久国产日韩欧美| 亚洲精选在线观看| 亚洲精品日韩在线观看| 欧美三级日本三级少妇99| 亚洲欧美日韩在线高清直播| 欧美黄色一区| 欧美在线一级va免费观看| 亚洲国产99| 国产色婷婷国产综合在线理论片a| 欧美精品乱码久久久久久按摩| 久久久国产午夜精品|