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

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

常用鏈接

留言簿(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>
            免费看亚洲片| 欧美高清视频在线观看| 一区二区在线观看视频| 国产精品毛片大码女人| 你懂的视频一区二区| 欧美在线观看www| 黄色另类av| 国产精品久久久久久亚洲调教| 蜜臀91精品一区二区三区| 99亚洲精品| 亚洲天堂第二页| 亚洲欧美一区二区视频| 亚洲午夜国产成人av电影男同| 亚洲国产二区| 亚洲九九精品| 亚洲欧美精品一区| 欧美专区18| 老妇喷水一区二区三区| 欧美大香线蕉线伊人久久国产精品| 卡通动漫国产精品| 亚洲国产日韩欧美一区二区三区| 欧美激情亚洲综合一区| 99国产精品久久| 性一交一乱一区二区洋洋av| 久久精品国亚洲| 欧美激情精品久久久久久免费印度 | 国产一区二区黄色| 亚洲一区二区综合| 亚洲视频播放| 香蕉久久夜色精品国产| 另类图片国产| 国产精品久久久久一区二区三区共| 国产色视频一区| 夜夜嗨一区二区| 久久久噜噜噜久久人人看| 亚洲精品欧美激情| 久久精品人人做人人综合| 欧美激情久久久久| 韩国成人福利片在线播放| 亚洲视频网在线直播| 久久综合九色综合欧美就去吻| 亚洲精选视频免费看| 老司机午夜精品视频| 国产一区二区日韩| 亚洲欧美激情四射在线日| 久久久久国产精品一区三寸| 99这里有精品| 欧美日韩国产成人在线91| 尤物精品在线| 欧美a级片一区| 久久精品国产99国产精品| 国产精品私人影院| 亚洲一区二区三区777| 亚洲国产美女久久久久| 久久综合伊人77777| 午夜激情亚洲| 国产一区二区黄色| 欧美一级视频一区二区| 一本久道久久久| 亚洲精品一区二区三| 欧美日本三级| 99re66热这里只有精品4| 亚洲大胆在线| 欧美精品免费看| 亚洲欧美另类国产| 久久成人免费网| 亚洲国产欧美精品| 亚洲精品男同| 国产精品青草久久久久福利99| 亚洲一区999| 久久成人一区二区| 亚洲日本欧美天堂| 一区二区三区.www| 精品99一区二区三区| 国产精品国产三级国产普通话99 | 亚洲精品一区二区三区不| 91久久综合亚洲鲁鲁五月天| 欧美美女福利视频| 久久久91精品国产一区二区精品| 裸体一区二区| 亚洲欧美在线播放| 欧美成人午夜| 久久久.com| 国产精品私拍pans大尺度在线 | 欧美一区视频| 欧美大片专区| 久久亚洲影音av资源网| 国产精品高潮在线| 亚洲激情影院| 亚洲国产欧美一区| 性久久久久久| 午夜在线a亚洲v天堂网2018| 每日更新成人在线视频| 国产精品成人va在线观看| 蜜臀av国产精品久久久久| 国产精品video| 91久久精品国产| 亚洲理论电影网| 久久综合久色欧美综合狠狠| 久久久久久久精| 国产欧美一区二区三区在线老狼 | 亚洲一区免费看| 99视频精品全部免费在线| 久久久久一区二区三区| 久久婷婷激情| 伊人久久大香线蕉av超碰演员| 欧美一区二区免费视频| 免费在线成人| 亚洲精品久久久一区二区三区| 免费成人你懂的| 亚洲看片网站| 亚洲精品在线电影| 久久电影一区| 国产精品天天看| 久久精品午夜| 亚洲欧洲日韩女同| 亚洲欧美一区二区在线观看| 国产一区二区三区在线播放免费观看 | 国产一区二区视频在线观看| 久久精品日韩欧美| 亚洲精品久久久久久久久久久久| aaa亚洲精品一二三区| 欧美精品一区二区精品网| 日韩一级大片在线| 久久久水蜜桃av免费网站| 亚洲黄色在线| 国产亚洲精久久久久久| 欧美二区在线看| 亚洲欧美综合| 亚洲日本激情| 美女成人午夜| 欧美一区二区三区喷汁尤物| 久久激情网站| 亚洲特级片在线| 亚洲国产精品成人久久综合一区| 亚洲一区二区三区777| 亚洲黄色av一区| 在线免费观看日本欧美| 国产亚洲欧美另类中文| 欧美视频中文字幕在线| 欧美电影在线免费观看网站| 午夜久久黄色| 亚洲一区精品视频| 99精品黄色片免费大全| 亚洲激情二区| 亚洲国产精品久久91精品| 国语自产精品视频在线看一大j8| 国产精品成人v| 国产精品jizz在线观看美国 | 亚洲深夜av| 99国产精品国产精品久久| 亚洲精品一区二区三区四区高清 | 日韩亚洲欧美综合| 亚洲人成人99网站| 亚洲精品视频在线观看网站| 亚洲黄色大片| 亚洲欧洲一级| 尤物yw午夜国产精品视频明星| 国产主播一区二区三区四区| 国产一区二区中文字幕免费看| 国产日韩精品一区二区| 国产精品美女一区二区在线观看| 欧美午夜片在线观看| 国产精品欧美风情| 在线视频观看日韩| 99精品福利视频| 久久国产精品久久久久久电车| 欧美一区网站| 亚洲精品乱码久久久久| 欧美成人精品三级在线观看| 亚洲免费观看在线视频| 欧美一区二区三区久久精品| 免费在线成人| 国产精品自拍网站| 亚洲国语精品自产拍在线观看| 亚洲一区三区电影在线观看| 久久一区二区精品| 一区二区三区日韩在线观看| 久久久久国产一区二区三区四区| 欧美日韩国产综合视频在线观看中文 | 国产精品久久久久久久久借妻| 国产日韩欧美自拍| 日韩一区二区精品葵司在线| 欧美一级视频精品观看| 91久久精品一区| 久久久久国产一区二区三区四区 | 欧美在线观看视频一区二区三区| 欧美激情第9页| 久久精品国产一区二区电影| 欧美视频1区| 日韩一级网站| 亚洲福利视频在线| 久久久欧美一区二区| 国产欧美日韩视频一区二区三区| 亚洲精品日韩激情在线电影| 久久免费高清| 久久久蜜桃精品| 亚洲第一精品电影| 免费在线欧美黄色| 久久久综合网站|