信号编程

信号接受函数

#include<signal.h>
#include<stdio.h>
#include <unistd.h>
//typedef void (*sighandler_t)(int);
void handler(int signum){
	switch(signum){
		case SIGIO:
			printf("SIGIO   signal: %d\n", signum);
		case SIGUSR1:
			printf("SIGUSR1   signal: %d\n", signum);
	}
}
int main(void)
{
    //sighandler_t signal(int signum, sighandler_t handler);
    signal(SIGIO, handler);//获取kill的信号
    signal(SIGUSR1, handler);
    printf("%d  %d\n", SIGIO, SIGUSR1);
    while(1);
    return 0;
}

信号发送函数

#include <sys/types.h>
#include <signal.h>
#include<stdio.h>
#include <unistd.h>
int main(int argc, char** argv)
{
	int cmd;
    int pid = atoi(argv[1]);//格式转化
    int signum = atoi(argv[2]);
    
    //int kill(pid_t pid, int sig);
    kill(pid, signum );//发送指令杀死进程
	//第二种方法
	//sprintf("cmd,kill -%d %d",signum ,pid);
	//system(cmd);
    return 0;
}

先运行信号接受
再运行信号发送 pid 9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值