程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Linux下C編程:raise

Linux下C編程:raise

編輯:關於C語言

信號的發送的關鍵是使系統知道向哪個進程發送信號以及發送什麼信號。其中要注意的是能否向某一進程發送某個特定的信號是和用戶的權限密切相關的。例如,只有系統管理員才能發送SIGKILL信號終止進程。

用於發送信號的系統調用。

#include <sys/types.h>     
         
#include <signal.h>     
         
#include <unistd.h>     
         
#include <sys/time.h>     
         
int kill(pid_t pid,int signumber);     
         
int raise(int signumber);     
         
unsigned int alarm(unsigned intseconds);     
         
int setitimer(int which,const structitimerval *value,struct itimerval *oldvalue);

raise:用於向進程自身發送信號。成功返回0,失敗返回-1。

#include <stdio.h>     
#include <signal.h>     
void func();     
void main()     
{     
     charbuffer[100];     
     if(SIG_ERR== signal(SIGINT,&func))     
     {     
         printf("signalerror!!\n");     
         exit(-1);     
     }     
     for(;;)     
     {     
         fgets(buffer,sizeof(buffer),stdin);     
         if(strcmp(buffer,"sigint\n")== 0)     
              raise(SIGINT);     
         else 
              printf("nocampare\n");     
     }     
}     
         
void func()     
{     
     printf("hellofunc\n");     
}

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved