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

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久久久久久久一区| 国产精品美女主播在线观看纯欲| 久久精品国产清高在天天线| 久久伊人亚洲| 亚洲综合视频网| 久久久91精品| 亚洲一级在线| 久久精品夜色噜噜亚洲aⅴ| 亚洲精品乱码久久久久| 亚洲特级毛片| 亚洲欧洲一区二区在线观看| 在线视频欧美精品| 尤物yw午夜国产精品视频| 9久re热视频在线精品| 国内精品美女在线观看| 亚洲欧洲免费视频| 国产日韩三区| 99日韩精品| 亚洲欧洲日本mm| 亚洲综合国产| 一区二区三区四区国产| 久久久天天操| 欧美亚洲视频一区二区| 欧美精品三级| 欧美电影电视剧在线观看| 国产精品国内视频| 亚洲激情女人| 亚洲国产va精品久久久不卡综合| 亚洲午夜激情免费视频| 亚洲精品影视在线观看| 久久精品国产一区二区三区免费看 | 亚洲精品一区中文| 黄色欧美日韩| 亚洲欧美综合国产精品一区| 亚洲精品日韩久久| 老司机一区二区| 久久久九九九九| 国产精品永久入口久久久| 日韩亚洲视频| 欧美激情久久久久久| 欧美国产91| 欧美va天堂| 激情国产一区二区| 久久高清免费观看| 欧美中文字幕在线播放| 国产精品资源| 亚洲一区二区免费| 午夜国产欧美理论在线播放 | 亚洲欧美精品一区| 亚洲一区二区三区涩| 欧美日韩亚洲一区| 99riav1国产精品视频| 一区二区成人精品| 欧美色区777第一页| 9l视频自拍蝌蚪9l视频成人| 一区二区久久久久久| 欧美日韩精品伦理作品在线免费观看| 欧美韩日亚洲| 99精品欧美一区二区三区| 欧美另类人妖| 在线亚洲免费| 性欧美xxxx视频在线观看| 国产精品自拍三区| 欧美中文在线视频| 欧美电影免费观看高清| 亚洲清纯自拍| 欧美性大战久久久久久久蜜臀| 亚洲视频一区二区免费在线观看| 亚洲永久免费视频| 国产午夜精品久久久| 久久免费国产精品1| 牛牛国产精品| 国产精品99久久久久久人| 国产精品久久久999| 欧美在线电影| 亚洲黄页视频免费观看| 亚洲愉拍自拍另类高清精品| 国产日韩av高清| 久久久夜色精品亚洲| 亚洲精品一区二区在线| 性18欧美另类| 亚洲国产三级在线| 国产精品久久久久久av下载红粉 | 一区二区三区视频观看| 久久精品国产999大香线蕉| 在线观看中文字幕不卡| 欧美日韩喷水| 久久视频一区二区| 中文欧美字幕免费| 欧美激情久久久| 性久久久久久久久| 亚洲欧洲精品一区二区精品久久久| 欧美午夜精品理论片a级大开眼界| 欧美一区二区成人6969| 亚洲精品美女91| 久久亚洲电影| 午夜精品福利一区二区蜜股av| 在线欧美一区| 国产女人水真多18毛片18精品视频| 麻豆精品国产91久久久久久| 亚洲少妇在线| 亚洲黄色毛片| 玖玖综合伊人| 欧美在线91| 亚洲午夜小视频| 亚洲精品老司机| 永久久久久久| 国产一区二区在线免费观看| 亚洲电影免费观看高清完整版在线观看| 亚洲精品乱码久久久久久按摩观| 欧美性猛交xxxx免费看久久久 | 免费成人高清视频| 亚洲欧美综合另类中字| 亚洲三级电影全部在线观看高清| 国产亚洲精品久| 国产精品国产馆在线真实露脸 | 久久国产精品亚洲va麻豆| 一区二区三区不卡视频在线观看| 欧美不卡视频| 免费在线播放第一区高清av| 久久精品一区二区三区不卡| 午夜免费电影一区在线观看| 一区二区三区久久久| 亚洲免费成人av| 亚洲精品一区二区三区99| 亚洲精品久久久久久久久| 在线免费观看一区二区三区| 国语精品中文字幕| 激情综合色综合久久| 韩日精品视频| 在线观看一区| 亚洲高清一区二区三区| 在线观看欧美日韩国产| 尤物yw午夜国产精品视频明星| 国模精品娜娜一二三区| 国内在线观看一区二区三区| 狠狠色丁香婷婷综合久久片| 激情成人在线视频| 亚洲第一主播视频| 亚洲人成网站999久久久综合| 亚洲精品在线免费| 一区二区三区高清视频在线观看| 中文av字幕一区| 午夜精品久久| 久久综合九色综合欧美狠狠| 嫩草国产精品入口| 亚洲精选视频免费看| 亚洲性视频网站| 久久成人免费视频| 欧美黄色免费网站| 国产精品国产自产拍高清av王其 | 欧美人成网站| 国产精品久久久久久久久果冻传媒| 国产精品美女黄网| 激情亚洲网站| 一本一本久久a久久精品综合妖精| 9i看片成人免费高清| 欧美一级理论性理论a| 久热精品视频| 亚洲狼人综合| 欧美一区二区三区视频| 欧美xxx在线观看| 国产精品每日更新| 亚洲欧洲精品一区二区三区不卡| 亚洲天堂网在线观看| 久久久久久91香蕉国产| 亚洲日本激情| 久久九九电影| 欧美午夜精彩| 亚洲电影免费观看高清完整版在线| 一本色道久久综合亚洲精品不| 久久狠狠久久综合桃花| 亚洲激情黄色| 久久精品国产亚洲aⅴ| 欧美日韩精品一区二区天天拍小说| 国产日韩欧美在线看| 亚洲精品一区二区网址| 久久久久久久久蜜桃| 一区二区三区高清视频在线观看| 久久中文字幕一区| 国产老肥熟一区二区三区| av成人福利| 欧美电影资源| 久久精品99| 国产精品综合| 亚洲一区在线看| 亚洲精品一二| 欧美 日韩 国产精品免费观看| 亚洲一区二区三区欧美 | 欧美一区观看| 国产精品国产成人国产三级|