在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 進(jìn)程間通信之: 信號量

            進(jìn)程間通信之: 信號量

            作者: 時間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

            本文引用地址:http://www.biyoush.com/article/257125.htm

            3.使用實例

            本實例說明的概念以及基本用法。在實例程序中,首先創(chuàng)建一個子進(jìn)程,接下來使用來控制兩個進(jìn)程(父子進(jìn)程)之間的執(zhí)行順序。

            因為相關(guān)的函數(shù)調(diào)用接口比較復(fù)雜,我們可以將它們封裝成二維單個信號量的幾個基本函數(shù)。它們分別為信號量初始化函數(shù)(或者信號量賦值函數(shù))init_sem()、P操作函數(shù)sem_p()、V操作函數(shù)sem_v()以及刪除信號量的函數(shù)del_sem()等,具體實現(xiàn)如下所示:

            /*sem_com.c*/

            #includesem_com.h

            /*信號量初始化(賦值)函數(shù)*/

            intinit_sem(intsem_id,intinit_value)

            {

            unionsemunsem_union;

            sem_union.val=init_value;/*init_value為初始值*/

            if(semctl(sem_id,0,SETVAL,sem_union)==-1)

            {

            perror(Initializesemaphore);

            return-1;

            }

            return0;

            }

            /*從系統(tǒng)中刪除信號量的函數(shù)*/

            intdel_sem(intsem_id)

            {

            unionsemunsem_union;

            if(semctl(sem_id,0,IPC_RMID,sem_union)==-1)

            {

            perror(Deletesemaphore);

            return-1;

            }

            }

            /*P操作函數(shù)*/

            intsem_p(intsem_id)

            {

            structsembufsem_b;

            sem_b.sem_num=0;/*單個信號量的編號應(yīng)該為0*/

            sem_b.sem_op=-1;/*表示P操作*/

            sem_b.sem_flg=SEM_UNDO;/*系統(tǒng)自動釋放將會在系統(tǒng)中殘留的信號量*/

            if(semop(sem_id,sem_b,1)==-1)

            {

            perror(Poperation);

            return-1;

            }

            return0;

            }

            /*V操作函數(shù)*/

            intsem_v(intsem_id)

            {

            structsembufsem_b;

            sem_b.sem_num=0;/*單個信號量的編號應(yīng)該為0*/

            sem_b.sem_op=1;/*表示V操作*/

            sem_b.sem_flg=SEM_UNDO;/*系統(tǒng)自動釋放將會在系統(tǒng)中殘留的信號量*/

            if(semop(sem_id,sem_b,1)==-1)

            {

            perror(Voperation);

            return-1;

            }

            return0;

            }

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            數(shù)字通信相關(guān)文章:數(shù)字通信原理




            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉