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

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

我對(duì)信號(hào)的理解

Posted on 2009-01-13 11:07 Prayer 閱讀(346) 評(píng)論(0)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX

自己寫了一些代碼,看看到底內(nèi)部如何處理的。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h> 
#include <signal.h> 
#include <sys/stat.h>
#include <stdarg.h>

pid_t pid;

void mydebug(char *fmt, ...){
    va_list     argptr;
    FILE        *pFile;
    if( ( pFile = fopen( "./mylog", "a+" ) ) == NULL )
 return;

    va_start( argptr, fmt );
    vfprintf( pFile, fmt, argptr );
    va_end( argptr );

    fclose( pFile ); 
 }

void sigTermHandler()
{
    kill(pid,SIGTERM);
}

int main(){
   int i=0;
  signal(SIGTERM,(void (*)( ))sigTermHandler);
 
   mydebug("創(chuàng)建進(jìn)程\n");
   if((pid=fork())<0){
    mydebug("fork失敗\n");
    return -1;     
   }
   if(pid==0){
   if(execl("./sig2",(char *) 0) < 0){
        mydebug("execl失敗\n");
    exit(1);
    }    
    }
    mydebug("等待100秒\n");    
    sleep(10);
    while(1){
      kill(pid,SIGUSR1);
      mydebug("已發(fā)送了USR1信號(hào) %d\n",i++);
      sleep(5);     
     }
    return 1;
}


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h> 
#include <signal.h> 
#include <sys/stat.h>
#include <stdarg.h>

void mydebug(char *fmt, ...){
    va_list     argptr;
    FILE        *pFile;
    if( ( pFile = fopen( "./mylog", "a+" ) ) == NULL )
 return;

    va_start( argptr, fmt );
    vfprintf( pFile, fmt, argptr );
    va_end( argptr );

    fclose( pFile ); 
 }

void sigUsr1Handler()
{
 signal(SIGUSR1,SIG_IGN);
  mydebug("進(jìn)入了信號(hào)處理函數(shù)\n");
 signal(SIGUSR1,(void (*)( ))sigUsr1Handler);
}
void sigTermHandler()
{
 mydebug("接受到SIGTERM信號(hào),退出\n");
 exit(0);
}

int main(){
   int i=0;
  signal(SIGUSR1,(void (*)( ))sigUsr1Handler); 
  signal(SIGTERM,(void (*)( ))sigTermHandler);
 
   mydebug("進(jìn)入循環(huán)\n");
   while(1){
      sleep(10);
      mydebug("i=%d\n",i++);
    }
   mydebug("退出程序\n");    
   return 0;
}


cc sig1.c -o sig1
cc sig2.c -o sig2
(使用-o sig1.o沒(méi)有編譯出應(yīng)用程序,也沒(méi)有提示錯(cuò)誤)

sig1&
tail -f mylog
創(chuàng)建進(jìn)程
等待100秒
進(jìn)入循環(huán)
已發(fā)送了USR1信號(hào) 0
進(jìn)入了信號(hào)處理函數(shù)
i=0
已發(fā)送了USR1信號(hào) 1
進(jìn)入了信號(hào)處理函數(shù)
i=1
已發(fā)送了USR1信號(hào) 2
進(jìn)入了信號(hào)處理函數(shù)
i=2
已發(fā)送了USR1信號(hào) 3
進(jìn)入了信號(hào)處理函數(shù)
i=3
已發(fā)送了USR1信號(hào) 4
進(jìn)入了信號(hào)處理函數(shù)
i=4
已發(fā)送了USR1信號(hào) 5
進(jìn)入了信號(hào)處理函數(shù)
i=5
已發(fā)送了USR1信號(hào) 6
進(jìn)入了信號(hào)處理函數(shù)
i=6
已發(fā)送了USR1信號(hào) 7
進(jìn)入了信號(hào)處理函數(shù)
i=7
已發(fā)送了USR1信號(hào) 8
進(jìn)入了信號(hào)處理函數(shù)
i=8
已發(fā)送了USR1信號(hào) 9
進(jìn)入了信號(hào)處理函數(shù)


此時(shí),在shell下使用kill殺死sig1,則根據(jù)sig1的sigTermHandler,sig2會(huì)被殺死。

接受到SIGTERM信號(hào),退出
已發(fā)送了USR1信號(hào) 10
已發(fā)送了USR1信號(hào) 11
已發(fā)送了USR1信號(hào) 12
已發(fā)送了USR1信號(hào) 13
已發(fā)送了USR1信號(hào) 14
已發(fā)送了USR1信號(hào) 15
已發(fā)送了USR1信號(hào) 16
已發(fā)送了USR1信號(hào) 17

但是sig1本身沒(méi)有被殺死,這時(shí)因?yàn)闆](méi)有在sigTermHandler里面重新注冊(cè)signal(SIGTERM,(void (*)( ))sigTermHandler);
執(zhí)行了一次sigTermHandler后,對(duì)SIGTERM的處理恢復(fù)到系統(tǒng)默認(rèn)的處理。
然后再一次執(zhí)行kill,殺死sig1,則sig1被殺死。


--可以看出,如果信號(hào)處理函數(shù)內(nèi)部沒(méi)有exit,則進(jìn)程不會(huì)退出,只是回到原來(lái)被中斷的地方繼續(xù)執(zhí)行。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产亚洲福利一区| 麻豆精品91| 欧美福利一区二区| 久久久精品网| 国产精品美女久久久免费| 欧美成人精品在线观看| 国产精品一区二区你懂得| 亚洲区国产区| 亚洲国产成人精品女人久久久| 亚洲一区二区在线免费观看视频 | 亚洲美女毛片| 久久久亚洲高清| 久久男人资源视频| 国产欧美一区二区精品性| 国产精品99久久久久久白浆小说| 亚洲伦伦在线| 欧美国产日韩二区| 91久久精品国产91性色| 在线观看不卡av| 久久精品国产一区二区三区| 久久福利一区| 国产欧美日韩视频在线观看 | 亚洲精品免费在线观看| 亚洲国产成人av在线| 久久亚洲高清| 欧美风情在线| 亚洲欧洲一级| 欧美精品成人91久久久久久久| 亚洲国产毛片完整版| 亚洲国产日韩在线一区模特| 久久偷看各类wc女厕嘘嘘偷窃| 久久影院午夜论| 影音先锋欧美精品| 欧美gay视频| 亚洲经典三级| 亚洲一级二级| 国产精品一区一区| 欧美一区1区三区3区公司| 久久天天综合| 亚洲欧洲精品一区二区精品久久久| 美女国产一区| 亚洲激情专区| 午夜影视日本亚洲欧洲精品| 国产视频一区三区| 久久影音先锋| 最新国产の精品合集bt伙计| 亚洲视频一区二区| 国产精品一区二区三区观看| 欧美在线免费观看视频| 亚洲国产精品成人综合色在线婷婷| 亚洲美女色禁图| 国产毛片一区| 蜜臀av性久久久久蜜臀aⅴ| 亚洲精品日本| 久久久精品午夜少妇| 亚洲精品一二三区| 国产欧美精品日韩| 欧美成人一区二区三区在线观看| 99v久久综合狠狠综合久久| 欧美在线精品一区| 最新亚洲视频| 国产农村妇女精品一区二区| 久久综合狠狠综合久久综青草| 亚洲精品视频啊美女在线直播| 久久福利影视| 一区二区三区日韩精品视频| 国产日韩综合一区二区性色av| 欧美韩国一区| 欧美一区二区三区在线看| 亚洲国产天堂久久国产91| 欧美在线视频a| 日韩一级免费| 在线观看成人网| 国产精品国产三级国产专区53| 久久综合一区| 亚洲欧美日韩中文视频| 亚洲国产小视频在线观看| 久久精品国产综合| 亚洲午夜精品一区二区三区他趣| 亚洲第一级黄色片| 国产美女精品人人做人人爽| 欧美久久视频| 久久综合激情| 久久精品官网| 午夜精品理论片| 一区二区三区四区国产| 亚洲成人在线视频播放| 欧美日韩精品一本二本三本| 久久高清免费观看| 亚洲视频一区二区| 亚洲乱码国产乱码精品精天堂 | 欧美日韩一区二区三区视频| 久久免费视频在线观看| 午夜精品视频| 亚洲午夜电影在线观看| av成人毛片| 亚洲精品在线视频| 91久久黄色| 亚洲高清免费视频| 欧美国产精品专区| 欧美福利视频一区| 欧美高清视频在线观看| 久久婷婷人人澡人人喊人人爽| 欧美在线观看你懂的| 欧美亚洲视频在线观看| 亚洲女人小视频在线观看| 一本色道久久综合亚洲精品婷婷| 亚洲黄色天堂| 91久久午夜| 亚洲欧洲日本mm| 亚洲精品一区中文| aaa亚洲精品一二三区| 亚洲美女视频网| 一片黄亚洲嫩模| 亚洲一区二区三区午夜| 性欧美大战久久久久久久久| 午夜精品剧场| 久久精品在线免费观看| 久久综合给合久久狠狠狠97色69| 久久综合免费视频影院| 欧美freesex交免费视频| 欧美国产日韩a欧美在线观看| 亚洲电影自拍| 99re66热这里只有精品3直播| 一区二区三区四区在线| 亚洲一区亚洲| 久久精品人人做人人爽| 免费不卡欧美自拍视频| 欧美日韩国产色综合一二三四 | 欧美诱惑福利视频| 久久久精品动漫| 亚洲第一中文字幕| 亚洲欧洲精品成人久久奇米网| 日韩一区二区精品在线观看| 亚洲欧美日韩视频二区| 久久精品国产99国产精品| 你懂的视频欧美| 国产精品高潮呻吟久久av黑人| 国产精品自拍小视频| 在线观看国产成人av片| 洋洋av久久久久久久一区| 亚洲欧美区自拍先锋| 麻豆精品视频在线| 日韩一级二级三级| 欧美一区免费视频| 欧美激情亚洲激情| 国产一区二区三区精品久久久| 最新69国产成人精品视频免费| 亚洲欧美另类在线| 欧美国产在线视频| 亚洲免费婷婷| 欧美激情一区二区三区在线| 国产精品一区二区你懂的| 亚洲人在线视频| 久久国产黑丝| 99re6热只有精品免费观看 | 免费日韩av电影| 国产精品每日更新| 亚洲激情电影中文字幕| 欧美淫片网站| 日韩一区二区精品葵司在线| 久久久久久久性| 国产精品婷婷| 宅男精品导航| 欧美激情五月| 久久爱另类一区二区小说| 欧美视频在线一区二区三区| 在线电影国产精品| 久久精品最新地址| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲日本成人在线观看| 久久国产精品网站| 亚洲午夜精品国产| 欧美激情一区二区三区成人| 黄色一区三区| 久久精品国产久精国产爱| 一区二区日韩| 欧美日韩在线精品| 日韩一级片网址| 欧美高清在线视频观看不卡| 久久精品最新地址| 韩国亚洲精品| 久久久久久久成人| 欧美一区二区在线看| 国产毛片精品视频| 欧美在线啊v一区| 亚洲一区二区三区四区视频| 亚洲激情成人网| 久久久噜噜噜久久人人看| 性欧美办公室18xxxxhd| 国产嫩草一区二区三区在线观看| 亚洲无吗在线| 一区二区三区导航| 欧美视频一区二区三区…| 一区二区三区高清视频在线观看| 91久久国产自产拍夜夜嗨| 欧美黄色精品| 亚洲视频国产视频| 亚洲一区亚洲二区| 国产亚洲精品久久久|