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

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>
            激情小说另类小说亚洲欧美| 欧美大片一区二区| 国产精品女主播| 亚洲在线国产日韩欧美| 亚洲影院免费| 国内精品久久国产| 欧美国产一区视频在线观看 | 欧美在线黄色| 久久国内精品自在自线400部| 狠狠干综合网| 亚洲精品黄色| 国产精品久久久久久久电影| 欧美日韩一区二区精品| 久久国产精品久久久久久电车 | 亚洲视频播放| 国产一区二区精品丝袜| 亚洲第一综合天堂另类专| 欧美片网站免费| 欧美综合国产| 欧美黄色视屏| 久久久99国产精品免费| 欧美国产乱视频| 久久精品在线| 欧美日韩精品在线视频| 另类欧美日韩国产在线| 欧美日韩1080p| 久久夜色精品国产| 欧美午夜在线一二页| 欧美成人精品一区二区| 免播放器亚洲一区| 国产日韩综合| 亚洲韩日在线| 国产伦精品免费视频| 欧美高清视频免费观看| 国产亚洲成精品久久| 亚洲区中文字幕| 一区在线免费| 亚洲色诱最新| 一二三四社区欧美黄| 久久久欧美一区二区| 欧美一区二区精品在线| 欧美成人中文字幕| 久久只精品国产| 国产精品一区二区女厕厕| 亚洲国产综合在线看不卡| 黄色工厂这里只有精品| 亚洲综合电影| 亚洲女女做受ⅹxx高潮| 欧美日韩成人一区二区| 欧美激情网站在线观看| 激情综合亚洲| 久久国产主播| 久久久中精品2020中文| 国产日韩精品视频一区| 亚洲一区二区三区午夜| 亚洲在线视频免费观看| 欧美色图天堂网| 一本久道久久综合狠狠爱| 亚洲免费av网站| 欧美激情亚洲自拍| 91久久精品一区二区别| 亚洲黄色片网站| 免费日韩精品中文字幕视频在线| 另类亚洲自拍| 在线日韩中文字幕| 免费不卡在线观看| 91久久久国产精品| 99视频+国产日韩欧美| 欧美喷水视频| 中文日韩电影网站| 欧美在线资源| 激情一区二区三区| 欧美.www| 亚洲精品在线二区| 在线午夜精品| 国产精品久久久久久影院8一贰佰| 中文在线一区| 久久国产成人| 99精品视频免费观看| 亚洲一级黄色片| 国产日韩欧美精品综合| 久久久久久久久久久久久女国产乱 | 午夜激情久久久| 麻豆久久精品| 亚洲三级免费电影| 欧美先锋影音| 久久精品中文字幕一区二区三区 | 久久国内精品视频| 在线看欧美视频| 欧美日韩亚洲综合在线| 亚洲在线观看视频网站| 你懂的视频一区二区| 99热免费精品| 国产视频一区二区在线观看 | 欧美日韩日日骚| 亚洲一区二区免费在线| 久久精品一本| 夜夜嗨网站十八久久| 国产亚洲综合性久久久影院| 欧美成人在线免费视频| 午夜精品区一区二区三| 91久久黄色| 久久久噜噜噜久久狠狠50岁| 99在线精品视频在线观看| 国产婷婷成人久久av免费高清| 男人插女人欧美| 香蕉成人久久| 99视频精品| 欧美成人自拍| 久久久久免费视频| 亚洲你懂的在线视频| 亚洲激情视频在线播放| 国产无遮挡一区二区三区毛片日本| 欧美激情一区二区三级高清视频| 欧美一区二区三区免费看| 亚洲美女精品久久| 你懂的视频欧美| 久久久久久网站| 亚洲欧美日韩国产一区二区三区 | 亚洲一区二区三区免费在线观看| 亚洲国产精品视频| 国产一区激情| 国产午夜精品一区二区三区视频 | 性欧美在线看片a免费观看| 日韩视频三区| 在线日韩欧美| 伊人久久综合| 国内视频一区| 国产婷婷色综合av蜜臀av| 国产精品sss| 欧美日本韩国| 欧美精品日本| 欧美黄污视频| 欧美激情亚洲视频| 欧美成人午夜| 午夜在线观看欧美| 亚洲视频综合在线| 在线视频精品一区| 亚洲视频在线观看| 在线视频欧美日韩| 中文日韩在线视频| 亚洲午夜视频| 午夜精品久久久久久久久久久久| 亚洲视频网站在线观看| 亚洲一区二区综合| 香蕉国产精品偷在线观看不卡| 欧美一区在线视频| 久久久久国产一区二区| 久久综合中文色婷婷| 欧美成人亚洲| 日韩视频在线观看免费| av成人动漫| 亚洲欧美激情一区二区| 欧美一区二区视频在线观看| 久久久综合网站| 欧美91福利在线观看| 欧美精品aa| 国产精品视频专区| 国模 一区 二区 三区| 亚洲福利视频一区| 99精品热视频| 欧美一区二区在线观看| 老司机免费视频一区二区三区| 欧美国产精品一区| 免费精品视频| 最新日韩在线| 欧美一级成年大片在线观看| 欧美一区二区三区视频在线| 亚洲宅男天堂在线观看无病毒| 国产精品网站在线| 国产精品揄拍500视频| 国产性色一区二区| 亚洲电影天堂av| 亚洲毛片在线看| 亚洲一级在线| 久久手机免费观看| 欧美国产91| 亚洲一区二区四区| 久久久亚洲午夜电影| 欧美日韩一二三区| 国产综合久久久久久| 日韩亚洲在线观看| 性色av一区二区三区| 欧美激情视频免费观看| 亚洲视频一区二区免费在线观看| 久久精品国产久精国产爱 | 久久不射2019中文字幕| 免费久久久一本精品久久区| 日韩一级在线| 久久人91精品久久久久久不卡 | 欧美一区国产二区| 欧美日韩综合精品| 亚洲成人原创| 欧美在线观看视频一区二区| 亚洲欧洲日产国产网站| 亚洲影视九九影院在线观看| 欧美激情视频给我| 一区免费在线| 久久久久久久一区二区三区| 国产精品久久国产三级国电话系列|