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

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 閱讀(2078) 評論(1)  編輯 收藏 引用 所屬分類: Linux_Coding

FeedBack:
# re: linux的消息隊列與共享內存編程
2011-05-27 11:01 | 朱志超
內容選擇得很好,謝謝  回復  更多評論
  
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(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| 亚洲美女视频| 亚洲婷婷国产精品电影人久久| 国产精品视频成人| 久久一区亚洲| 欧美啪啪成人vr| 午夜精品国产更新| 久久青青草综合| 制服丝袜激情欧洲亚洲| 亚洲伊人网站| 亚洲国产日韩一区二区| 日韩午夜在线电影| 国模私拍一区二区三区| 亚洲高清在线播放| 国产精品久久婷婷六月丁香| 久久一区精品| 欧美视频一区二区在线观看| 久久久之久亚州精品露出| 欧美成人久久| 久久精品一区蜜桃臀影院| 欧美激情中文字幕乱码免费| 亚洲欧洲99久久| 蜜臀av性久久久久蜜臀aⅴ| 亚洲影视在线| 噜噜噜久久亚洲精品国产品小说| 亚洲欧美激情诱惑| 欧美成人免费在线观看| 欧美一区二区在线播放| 欧美日本二区| 欧美1区3d| 国产在线观看一区| 99视频一区二区| 亚洲激情图片小说视频| 午夜日韩激情| 亚洲欧美日韩在线观看a三区| 美女久久一区| 久久久夜夜夜| 国产美女精品在线| 艳女tv在线观看国产一区| 亚洲高清资源| 久久福利毛片| 欧美在线999| 国产精品久久久久久久久果冻传媒 | 欧美国产日韩xxxxx| 国产日韩欧美二区| 亚洲天堂av高清| 亚洲天堂av电影| 欧美精品1区| 欧美激情欧美激情在线五月| 国产性天天综合网| 亚洲欧美国产日韩天堂区| 亚洲影院一区| 欧美视频二区| 一区二区三区 在线观看视频| 亚洲人午夜精品| 欧美成人精品激情在线观看| 欧美凹凸一区二区三区视频| 国产真实久久| 午夜精品区一区二区三| 欧美影院在线播放| 国产亚洲精品aa午夜观看| 香港成人在线视频| 久久久久青草大香线综合精品| 国产日韩精品一区二区三区| 亚洲欧美综合国产精品一区| 欧美一区日韩一区| 国产专区欧美专区| 久久精品人人爽| 欧美电影在线播放| 亚洲乱码精品一二三四区日韩在线 | 日韩一级裸体免费视频| 一区二区三区久久网| 欧美视频一区二区在线观看| 中文精品在线| 久久久久国产精品www| 伊人久久噜噜噜躁狠狠躁| 久久综合久久美利坚合众国| 欧美激情一区在线观看| 一二三区精品| 国产三级欧美三级日产三级99| 欧美在线欧美在线| 亚洲第一黄色| 亚洲欧美日韩另类精品一区二区三区 | 夜夜嗨av一区二区三区| 新67194成人永久网站| 国产一区二区激情| 欧美二区视频| 亚洲一区影院| 欧美激情第一页xxx| 亚洲一区999| 在线电影一区| 欧美日韩亚洲91| 久久久国产精彩视频美女艺术照福利 | 亚洲精品资源美女情侣酒店| 国产精品黄页免费高清在线观看| 欧美在线精品一区| 亚洲经典自拍| 久久女同互慰一区二区三区| 亚洲精品在线一区二区| 国产农村妇女精品| 欧美成人一区二区| 欧美一区二区三区四区在线观看地址| 欧美成人在线免费视频| 亚洲欧美日本国产专区一区| 亚洲高清一区二区三区| 国产精品永久入口久久久| 蜜臀久久99精品久久久久久9| 亚洲制服av| 日韩一级黄色大片| 欧美成人一区二免费视频软件| 欧美一级专区免费大片| 日韩亚洲欧美综合| 在线观看国产一区二区| 国产欧美精品一区aⅴ影院| 欧美成人精品影院| 久久久中精品2020中文| 亚洲欧美日韩精品久久久久| 亚洲精品免费电影| 亚洲国产精品久久久| 久久久噜噜噜| 久久精品国产视频| 亚洲欧美中文另类| 亚洲一区欧美二区| 亚洲天堂久久| 一区二区三区免费在线观看| 最新成人av在线| 怡红院精品视频| 激情亚洲网站| 韩国精品久久久999| 国产亚洲一区二区三区在线播放| 国产精品成人在线| 国产精品高清网站| 国产精品大全| 国产精品乱码妇女bbbb| 国产精品爱久久久久久久| 欧美日韩视频免费播放| 欧美精品国产精品日韩精品| 欧美成人午夜激情视频| 免费视频一区| 欧美激情1区2区3区| 欧美—级在线免费片| 欧美区高清在线| 欧美理论在线播放| 欧美三级视频| 国产精品麻豆欧美日韩ww| 国产精品乱人伦一区二区| 国产欧美精品xxxx另类| 国产日韩亚洲欧美综合| 黑丝一区二区| 亚洲欧洲在线观看| 一区二区三区四区国产| 亚洲一区欧美| 久久久免费观看视频| 欧美成人精品在线| 91久久极品少妇xxxxⅹ软件| 99精品国产在热久久下载| 亚洲小说欧美另类社区| 欧美在线观看视频在线| 欧美成人亚洲| 国产精品免费看| 韩国av一区二区三区| 亚洲精品视频啊美女在线直播| 在线视频欧美精品| 久久se精品一区二区| 你懂的国产精品永久在线| 亚洲精品一二三| 午夜久久久久久| 欧美va亚洲va香蕉在线| 国产精品久久久久久久久搜平片| 国产综合在线视频| 99re热这里只有精品免费视频| 午夜视频一区| 欧美大片在线影院| 亚洲一区二区三区777| 久久久在线视频| 国产精品美女久久久久av超清 | 亚洲美女91| 久久精品国产第一区二区三区| 亚洲高清视频在线观看| 亚洲欧美综合精品久久成人| 欧美成人午夜77777| 国产日韩亚洲欧美综合| a4yy欧美一区二区三区| 久久久之久亚州精品露出| 一区二区三区日韩欧美精品| 久久青青草原一区二区| 国产欧美精品在线播放| 99精品视频免费全部在线| 久久婷婷国产综合尤物精品| 亚洲午夜av| 欧美日韩调教| 亚洲人成在线播放| 另类春色校园亚洲| 欧美一区二区视频免费观看|