error C2664: “signal”: 不能将参数 2 从“void (__cdecl *)(void)”转换为“void (__cdecl *)(int)”
1> 在匹配目标类型的范围内没有具有该名称的函数
出现这种错误如何解决
#include
#include
#include
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); waiting(); lockf(1,0,0); printf("Child process1 is killed by parent!n"); lockf(1,0,0); exit(0); }
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)