• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

linux c —raise 使用范例

docker 水墨上仙 3113次浏览

信号的发送的关键是使系统知道向哪个进程发送信号以及发送什么信号。其中要注意的是能否向某一进程发送某个特定的信号是和用户的权限密切相关的。例如,只有系统管理员才能发送SIGKILL信号终止进程。
出处:http://blog.csdn.net/muge0913/article/details/7337152

用于发送信号的系统调用。

#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");  
}  


喜欢 (0)
加载中……