亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 多進(jìn)程編程.htm

?? windows網(wǎng)絡(luò)編程技術(shù)文章
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
                 for (i=0;i<20;i++)
                     signal(i,cleanup);
                 shmid=shmget(SHMKEY,128*K,0777|IPC_CREAT);
                 addr1=shmat(shmid,0,0);
                 addr2=shmat(shmid,0,0);
                 printf("addr1 0x%x addr2 0x%x\n",addr1,addr2);
                 pint=(int*)addr1;
                 for (i=0;i<256;i++)
                     *pint++=i;
                 pint=(int*)addr1;
                 *pint=256;
                 pint=(int*)addr2;
                 for (i=0;i<256;i++)
                     printf("index %d\tvalue%d\n",i,*pint++);
                 shmdt(addr1);
                 shmdt(addr2);
                 pause();
             }
    21.semctl()
        功能:信號量控制操作.
        語法:#include <sys/types.h>
             #include <sys/ipc.h>
             #include <sys/sem.h>
             int semctl(semid,memnum,cmd,arg)
             int semid,semnum,cmd;
             union semun {
                   int val;
                   struct semid_ds *buf;
                   ushort *array;
             }arg;
        說明:本系統(tǒng)調(diào)用提供了一個(gè)信號量控制操作,操作行為由cmd定義,這
             些命令是對由semid和semnum指定的信號量做操作的.每個(gè)命令都
             要求有相應(yīng)的權(quán)限級別:
             . GETVAL:返回semval的值,要求有讀權(quán)限.
             . SETVAL:設(shè)置semval的值到arg.val上.此命令成功執(zhí)行后,
                  semadj的值對應(yīng)的所有進(jìn)程的信號量全部被清除,要求有修
                  改權(quán)限.
             . GETPID:返回sempid的值,要求有讀權(quán)限.
             . GETNCNT:返回semncnt的值,要求有讀權(quán)限.
             . GETZCNT:返回semzcnt的值,要求有讀權(quán)限.
             以下命令在一組信號量中的各個(gè)semval上操作:
             . GETALL:返回每個(gè)semval的值,同時(shí)將各個(gè)值放入由arg.array
                 指向的數(shù)組中.當(dāng)此命令成功執(zhí)行后,semadj的值對應(yīng)的所有
                 進(jìn)程的信號量全部被清除,要求有修改權(quán)限.
             . SETALL:根據(jù)由arg.array指向的數(shù)組設(shè)置各個(gè)semval值.當(dāng)此
                 命令成功執(zhí)行后,semadj的值對應(yīng)的所有進(jìn)程的信號量全部
                 被清除,要求有修改權(quán)限.
             以下命令在任何情況下都是有效的:
             . IPC_STAT:將與semid相關(guān)的數(shù)據(jù)結(jié)構(gòu)的各個(gè)成員的值放入由
                 arg.buf指向的結(jié)構(gòu)中.要求有讀權(quán)限.
             . IPC_SET:設(shè)置semid相關(guān)數(shù)據(jù)結(jié)構(gòu)的如下成員,設(shè)置數(shù)據(jù)從
                 arg.buf指向的結(jié)構(gòu)中讀取:
                   sem_perm.uid
                   sem_perm.gid
                   sem_perm.mode
                 本命令只能由有效UID等于sem_perm.cuid或sem_perm.uid的
                 進(jìn)程或有效UID有合適權(quán)限的進(jìn)程操作.
             . IPC_RMID:刪除由semid指定的信號量標(biāo)識符和相關(guān)的一組信號
                 量及數(shù)據(jù)結(jié)構(gòu).本命令只能由有效UID等于sem_perm.cuid或
                 sem_perm.uid的進(jìn)程或有效UID有合適權(quán)限的進(jìn)程操作.
        返回值:若調(diào)用成功,則根據(jù)cmd返回以下值:
               GETVAL:semval的值.
               GETPID:sempid的值.
               GETNCNT:semncnt的值.
               GETZCNT:semzcnt的值.
               其他:0.
               若調(diào)用失敗則返回-1.
    22.semget()
        功能:取得一組信號量.
        語法:#include <sys/types.h>
             #include <sys/ipc.h>
             #include <sys/sem.h>
             int semget(key,nsems,semflg)
             key_t key;
             int nsems,semflg;
        說明:返回和key相關(guān)的信號量標(biāo)識符.
             若以下事實(shí)成立,則與信號量標(biāo)識符,與之相關(guān)的semid_ds數(shù)據(jù)結(jié)
             構(gòu)及一組nsems信號量將被創(chuàng)建:
               . key等于IPC_PRIVATE.
               . 系統(tǒng)內(nèi)還沒有與key相關(guān)的信號量,同時(shí)(semflg&IPC_CREAT)
                 為真.
             創(chuàng)建時(shí)新的信號量相關(guān)的semid_ds數(shù)據(jù)結(jié)構(gòu)被初始化如下:
             . 在操作權(quán)限結(jié)構(gòu),sem_perm.cuid和sem_perm.uid設(shè)置等于調(diào)用
               進(jìn)程的有效UID.
             . 在操作權(quán)限結(jié)構(gòu),sem_perm.cgid和sem_perm.gid設(shè)置等于調(diào)用
               進(jìn)程的有效GID.
             . 訪問權(quán)限比特位sem_perm.mode設(shè)置等于semflg的訪問權(quán)限比
               特位.
             . sem_otime設(shè)置等于0,sem_ctime設(shè)置等于當(dāng)前系統(tǒng)時(shí)間.
        返回值:若調(diào)用成功,則返回一非0值,稱為信號量標(biāo)識符;否則返回-1.
    23.semop()
        功能:信號量操作.
        語法:#include <sys/types.h>
             #include <sys/ipc.h>
             #include <sys/sem.h>
             int semop(semid,sops,nsops)
             int semid;
             struct sembuf *sops;
             unsigned nsops;
        說明:本系統(tǒng)調(diào)用用于執(zhí)行用戶定義的在一組信號量上操作的行為集合.
             該組信號量與semid相關(guān).
             參數(shù)sops為一個(gè)用戶定義的信號量操作結(jié)構(gòu)數(shù)組指針.
             參數(shù)nsops為該數(shù)組的元素個(gè)數(shù).
             數(shù)組的每個(gè)元素結(jié)構(gòu)包括如下成員:
               sem_num;    /* 信號量數(shù) */
               sem_op;     /* 信號量操作 */
               sem_flg;    /* 操作標(biāo)志 */
             由本系統(tǒng)調(diào)用定義的每個(gè)信號量操作是針對由semid和sem_num指
             定的信號量的.變量sem_op指定三種信號量操作的一種:
             . 若sem_op為一負(fù)數(shù)并且調(diào)用進(jìn)程具有修改權(quán)限,則下列情況之
               一將會發(fā)生:
               * 若semval不小于sem_op的絕對值,則sem_op的絕對值被減去
                 semval的值.若(semflg&SEM_UNDO)為真則sem_op的絕對值加
                 上調(diào)用進(jìn)程指定的信號量的semadj值.
               * 若semval小于sem_op的絕對值同時(shí)(semflg&IPC_NOWAIT)為
                 真,則本調(diào)用立即返回.
               * 若semval小于sem_op的絕對值同時(shí)(semflg&IPC_NOWAIT)為
                 假,則本系統(tǒng)調(diào)用將增加指定信號量相關(guān)的semncnt值(加一),
                 將調(diào)用進(jìn)程掛起直到下列條件之一被滿足:
                   (1).semval值變成不小于sem_op的絕對值.當(dāng)這種情況發(fā)
                       生時(shí),指定的信號量相關(guān)的semncnt減一,若
                       (semflg&SEM_UNDO)為真則sem_op的絕對值加上調(diào)用
                       進(jìn)程指定信號量的semadj值.
                   (2).調(diào)用進(jìn)程等待的semid已被系統(tǒng)刪除.
                   (3).調(diào)用進(jìn)程捕俘到信號,此時(shí),指定信號量的semncnt值
                       減一,調(diào)用進(jìn)程執(zhí)行中斷服務(wù)程序.
             . 若sem_op為一正值,同時(shí)調(diào)用進(jìn)程具有修改權(quán)限,sem_op的值加
               上semval的值,若(semflg&SEM_UNDO)為真,則sem_op減去調(diào)用
               進(jìn)程指定信號量的semadj值.
             . 若sem_op為0,同時(shí)調(diào)用進(jìn)程具有讀權(quán)限,下列情況之一將會發(fā)
               生:
               * 若semval為0,本系統(tǒng)調(diào)用立即返回.
               * 若semval不等于0且(semflg&IPC_NOWAIT)為真,本系統(tǒng)調(diào)用
                 立即返回.
               * 若semval不等于0且(semflg&IPC_NOWAIT)為假,本系統(tǒng)調(diào)用
                 將把指定信號量的
                 semzcnt值加一,將調(diào)用進(jìn)程掛起直到下列情況之一發(fā)生:
                   (1).semval值變?yōu)?時(shí),指定信號量的semzcnt值減一.
                   (2).調(diào)用進(jìn)程等待的semid已被系統(tǒng)刪除.
                   (3).調(diào)用進(jìn)程捕俘到信號,此時(shí),指定信號量的semncnt值
                       減一,調(diào)用進(jìn)程執(zhí)行中斷服務(wù)程序.
        返回值:調(diào)用成功則返回0,否則返回-1.
        例子:本例將包括上述信號量操作的所有系統(tǒng)調(diào)用:
             #include <sys/types.h>
             #include <sys/ipc.h>
             #include <sys/sem.h>
             #define SEMKEY 75
             int semid;
             unsigned int count;
             /*在文件sys/sem.h中定義的sembuf結(jié)構(gòu)
              *  struct sembuf {
              *      unsigned short sem_num;
              *      short sem_op;
              *      short sem_flg;
              *  }*/
             struct sembuf psembuf,vsembuf;   /*P和V操作*/
             cleanup()
             {
                 semctl(semid,2,IPC_RMID,0);
                 exit(0);
             }
             main(argc,argv)
             int argc;
             char *argv[];
             {
                 int i,first,second;
                 short initarray[2],outarray[2];
                 extern cleanup();
                 if (argc==1) {
                     for (i=0;i<20;i++)
                         signal(i,clearup);
                     semid=semget(SEMKEY,2,0777|IPC_CREAT);
                     initarray[0]=initarray[1]=1;
                     semctl(semid,2,SETALL,initarray);
                     semctl(semid,2,GETALL,outarray);
                     printf("sem init vals %d%d \n",
                            outarray[0],outarray[1]);
                     pause(); /*睡眠到被一軟件中斷信號喚醒*/
                 }
                 else if (argv[1][0]=='a') {
                     first=0;
                     second=1;
                 }
                 else {
                     first=1;
                     second=0;
                 }
                 semid=semget(SEMKEY,2,0777);
                 psembuf.sem_op=-1;
                 psembuf.sem_flg=SEM_UNDO;
                 vsembuf.sem_op=1;
                 vsembuf.sem_flg=SEM_UNDO;
                 for (count=0;;xcount++) {
                     psembuf.sem_num=first;
                     semop(semid,&psembuf,1);
                     psembuf.sem_num=second;
                     semop(semid,&psembuf,1);
                     printf("proc %d count %d\n",getpid(),count);
                     vsembuf.sem_num=second;
                     semop(semid,&vsembuf,1);
                     vsembuf.sem_num=first;
                     semop(semid,&vsembuf,1);
                 }
             }
    24.sdenter()
        功能:共享數(shù)據(jù)段同步訪問,加鎖.
        語法:#include <sys/sd.h>
             int sdenter(addr,flags)
             char *addr;
             int flags;
        說明:用于指示調(diào)用進(jìn)程即將可以訪問共享數(shù)據(jù)段中的內(nèi)容.
             參數(shù)addr為將一個(gè)sdget()調(diào)用的有效返回碼.
             所執(zhí)行的動(dòng)作取決于flags的值:
             . SD_NOWAIT:若另一個(gè)進(jìn)程已對指定的段調(diào)用本系統(tǒng)調(diào)用且還沒
                 有調(diào)用sdleave(),并且該段并非用SD_UNLOCK標(biāo)志創(chuàng)建,則調(diào)
                 用進(jìn)程不是等待該段空閑而是立即返回錯(cuò)誤碼.
             . SD_WRITE:指示調(diào)用進(jìn)程希望向共享數(shù)據(jù)段寫數(shù)據(jù).此時(shí),另一
                 個(gè)進(jìn)程用SD_RDONLY標(biāo)志聯(lián)接該共享數(shù)據(jù)段則不被允許.
        返回值:調(diào)用成功則返回0,否則返回-1.
    25.sdleave()
        功能:共享數(shù)據(jù)段同步訪問,解鎖.
        語法:#include <sys/sd.h>
             int sdleave(addr,flags)
             char *addr;
        說明:用于指示調(diào)用進(jìn)程已完成修改共享數(shù)據(jù)段中的內(nèi)容.
        返回值:調(diào)用成功則返回0,否則返回-1.
    26.sdget()
        功能:聯(lián)接共享數(shù)據(jù)段到調(diào)用進(jìn)程的數(shù)據(jù)空間中.
        語法:#include <sys/sd.h>
             char *sdget(path,flags,size.mode)
             char *path;
             int flags;
             long size;
             int mode;
        說明:本系統(tǒng)調(diào)用將共享數(shù)據(jù)段聯(lián)接到調(diào)用進(jìn)程的數(shù)據(jù)段中,具體動(dòng)作
             由flags的值定義:
             . SD_RDONLY:聯(lián)接的段為只讀的.
             . SD_WRITE:聯(lián)接的段為可讀寫的.
             . SD_CREAT:若由path命名的段存在且不在使用中,本標(biāo)志的作用
                 同早先創(chuàng)建一個(gè)段相同,否則,該段根據(jù)size和mode的值進(jìn)程

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91玉足脚交白嫩脚丫在线播放| 久久综合给合久久狠狠狠97色69| 亚洲欧洲综合另类在线| 91在线高清观看| 亚洲免费资源在线播放| 欧美专区亚洲专区| 亚洲精品午夜久久久| 欧美三级一区二区| 肉肉av福利一精品导航| 日韩欧美国产1| 国产精品1024| 亚洲欧美视频一区| 亚洲欧洲精品天堂一级| 久久精品国产秦先生| 麻豆91在线观看| 极品销魂美女一区二区三区| 中文字幕av一区二区三区高| 成人精品国产一区二区4080| 日韩毛片在线免费观看| 色婷婷亚洲精品| 日本不卡在线视频| 国产人久久人人人人爽| 95精品视频在线| 日本亚洲电影天堂| 国产午夜精品一区二区 | 一本大道av一区二区在线播放| 亚洲综合免费观看高清在线观看| 欧美嫩在线观看| 国产精品一级片在线观看| 亚洲欧美日韩电影| 精品少妇一区二区三区在线视频| 岛国精品在线播放| 欧美在线综合视频| 国内成人免费视频| 亚洲美女免费视频| 欧美tk—视频vk| 色综合久久天天综合网| 久热成人在线视频| 一区二区三区蜜桃| 久久久久久久久岛国免费| 日本高清无吗v一区| 国产尤物一区二区在线| 亚洲图片一区二区| 国产精品视频线看| 欧美精品少妇一区二区三区| 北岛玲一区二区三区四区| 免费在线观看视频一区| 亚洲欧美另类久久久精品2019| 日韩精品一区二区三区三区免费| 91麻豆福利精品推荐| 国产一区二区三区四区五区入口| 亚洲www啪成人一区二区麻豆| 中文字幕乱码久久午夜不卡| 日韩一区二区三区电影| 91首页免费视频| 国产高清不卡二三区| 91亚洲国产成人精品一区二区三 | 亚洲动漫第一页| 日韩精品成人一区二区三区 | 91麻豆国产香蕉久久精品| 老司机精品视频一区二区三区| 亚洲精品成a人| 中文字幕av不卡| 国产调教视频一区| 日韩一级二级三级| 在线播放欧美女士性生活| 在线一区二区三区四区五区 | 青青青爽久久午夜综合久久午夜| 亚洲精品美国一| 国产精品久久久久久久久久久免费看 | 1区2区3区国产精品| 国产亚洲精品免费| 亚洲精品在线观看视频| 日韩欧美一级特黄在线播放| 欧美精品99久久久**| 欧美日韩一级视频| 欧美老年两性高潮| 欧美日韩电影一区| 91精品国产高清一区二区三区| 欧美日韩高清影院| 91精品在线免费观看| 欧美精品久久99| 国产精品国产三级国产| 国产精品77777竹菊影视小说| 国产精品久久久久久久久免费桃花 | 久久欧美一区二区| 久久久一区二区三区捆绑**| 2021中文字幕一区亚洲| 久久综合色综合88| 国产婷婷精品av在线| 国产欧美一区二区精品性色超碰| 久久久久久久久久久电影| 欧美国产日韩a欧美在线观看| 日本一区二区高清| 中文字幕一区二| 夜夜亚洲天天久久| 亚洲mv在线观看| 麻豆成人免费电影| 国产69精品久久久久777| 99国产一区二区三精品乱码| 色综合久久天天| 91精品一区二区三区在线观看| 精品乱人伦一区二区三区| 国产网红主播福利一区二区| 国产精品久久久久久久蜜臀| 亚洲午夜成aⅴ人片| 日本va欧美va欧美va精品| 国产一本一道久久香蕉| 99久久免费精品高清特色大片| 91电影在线观看| 日韩欧美国产三级| 中文字幕综合网| 日韩电影在线观看电影| 福利电影一区二区| 欧美中文一区二区三区| 2024国产精品| 亚洲激情图片一区| 久久不见久久见免费视频1 | 国产91精品欧美| 欧美亚洲动漫制服丝袜| 欧美mv日韩mv| 一区二区三区久久| 国产一区亚洲一区| 欧美三区在线观看| 国产亚洲欧美色| 午夜精品久久久久久久久| 国产成人在线网站| 88在线观看91蜜桃国自产| 亚洲国产经典视频| 美国三级日本三级久久99| aaa欧美大片| 精品国产免费人成电影在线观看四季| 亚洲视频1区2区| 国产在线精品一区二区不卡了| 91久久国产综合久久| 国产欧美日韩另类视频免费观看| 亚洲国产美女搞黄色| 成人午夜精品在线| 精品少妇一区二区三区| 亚洲国产一区二区三区青草影视| 国产成人综合亚洲网站| 日韩女同互慰一区二区| 精品国产一区二区三区久久久蜜月 | 日本精品一区二区三区高清| 亚洲美女偷拍久久| 欧美一区二区高清| 在线一区二区三区四区五区| 欧美国产1区2区| 日韩精品中文字幕在线一区| 精品国产麻豆免费人成网站| 午夜成人免费视频| 色综合久久综合中文综合网| 欧美国产综合色视频| 九色综合狠狠综合久久| 8x福利精品第一导航| 亚洲欧洲国产日本综合| 欧美高清hd18日本| 奇米色一区二区| 日本一区二区三区国色天香 | 国产精品久99| 日韩精品一区二区三区视频播放| 91偷拍与自偷拍精品| 狠狠色丁香久久婷婷综合丁香| 一区二区三区欧美亚洲| 久久久久综合网| 成人一区二区三区| 国产不卡视频在线播放| 一本到高清视频免费精品| 国产精品丝袜在线| 成人午夜视频在线观看| 国产亚洲一区二区三区四区| 国产尤物一区二区在线| 久久五月婷婷丁香社区| 精东粉嫩av免费一区二区三区| 日韩欧美电影在线| 日韩电影在线免费看| 国产精品灌醉下药二区| aa级大片欧美| 国产一区二区三区电影在线观看| 日韩一区二区三区免费看 | 欧美电影免费观看高清完整版在 | 麻豆91在线播放免费| 精品剧情v国产在线观看在线| 美国十次综合导航| 亚洲精品一区二区在线观看| 国产综合久久久久久鬼色| 2023国产精品自拍| 福利一区福利二区| 亚洲色图欧美激情| 欧美午夜精品久久久| 日韩国产成人精品| 精品91自产拍在线观看一区| 成人精品一区二区三区中文字幕 | 精品国产91久久久久久久妲己 | 久久国产麻豆精品| 欧美日韩国产综合久久| 色偷偷一区二区三区| 色视频成人在线观看免| 色综合中文字幕| 久久精品一区二区三区av|