<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/257125.htm

          3.使用實(shí)例

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

          因?yàn)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/信號(hào)量">信號(hào)量相關(guān)的函數(shù)調(diào)用接口比較復(fù)雜,我們可以將它們封裝成二維單個(gè)信號(hào)量的幾個(gè)基本函數(shù)。它們分別為信號(hào)量初始化函數(shù)(或者信號(hào)量賦值函數(shù))init_sem()、P操作函數(shù)sem_p()、V操作函數(shù)sem_v()以及刪除信號(hào)量的函數(shù)del_sem()等,具體實(shí)現(xiàn)如下所示:

          /*sem_com.c*/

          #includesem_com.h

          /*信號(hào)量初始化(賦值)函數(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)中刪除信號(hào)量的函數(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;/*單個(gè)信號(hào)量的編號(hào)應(yīng)該為0*/

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

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

          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;/*單個(gè)信號(hào)量的編號(hào)應(yīng)該為0*/

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

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

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

          {

          perror(Voperation);

          return-1;

          }

          return0;

          }

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

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




          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();