信号机制实现

在这里插入图片描述
error C2664: “signal”: 不能将参数 2 从“void (__cdecl *)(void)”转换为“void (__cdecl *)(int)”
1> 在匹配目标类型的范围内没有具有该名称的函数

出现这种错误如何解决

#include<stdio.h>
#include<signal.h>
#include<stdlib.h>

void waiting(),stop();
int wait_mark;
int (*signal)(int,int);
int fork();
int pid,sig;
int kill(int pid,int sig);
int wait(int status);
int *status;
void exit(int status);
int lockf(int files,int function,int size);
long size;

void waiting()
{
while(wait_mark!=0);
}
void stop()
{
while(wait_mark!=0);
}

void main()
{
int p1,p2;
if(p1=fork()) /创建子进程p1/
{
if(p2=fork()) /创建子进程p2/
{
wait_mark=0;
signal(SIGINT,stop); /接收到^c信号,转stop/
waiting();
kill(p1,02); /向进程p1发送软中断信号02/
kill(p2,02); /向进程p2发送软中断信号02/
wait(0); /等待子进程1结束的信号/
wait(0); /等待子进程2结束的信号/
printf(“Parent process is killed!\n”);
exit(0); /父进程结束/
}
else
{
wait_mark=0;
signal(SIGINT,stop); /等待进程2被杀死的中断号02/
waiting();
lockf(1,0,0);
printf(“Child process2 is killed by parent!\n”);
lockf(1,0,0);
exit(0);
}

}
else
	{
		wait_mark=0;
		signal(SIGINT,stop);	 /*等待进程1被杀死的中断号02*/
		waiting();
		lockf(1,0,0);
		printf("Child process1 is killed by parent!\n"); 
		lockf(1,0,0);
		exit(0);
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值