嗨,这个代码有问题.当我使用此功能时,我没有任何警告.:
void handler(int sig){
switch(sig) {
case SIGINT : { click++; fprintf(stdout,"SIGINT recu\n");
if( click == N){
exit(0);
}
}
case SIGALRM : fprintf(stdout,"SIGALRM received\n");
exit(0);
case SIGTERM: fprintf(stdout,"SIGTERM received\n");
exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我用这个新版本重写函数时,我在if语句中有一个" 指针和整数之间的比较 "警告:
void handler( int sig){
printf("Signal recu\n");
if( signal == SIGINT){
click++;
fprintf(stdout,"SIGINT received; Click = %d\n",click);
if(click == N){
fprintf(stdout,"Exiting with SIGINT\n");
exit(0);
}
} else if(signal == SIGALRM){
fprintf(stdout,"SIGALRM received\n");
exit(0);
} else if(signal == SIGTERM){
fprintf(stdout,"SIGTERM received\n");
exit(0);
}
Run Code Online (Sandbox Code Playgroud)
有人能告诉我问题在哪里吗?
Mar*_*off 10
在第二个代码中,您正在进行比较signal,这甚至不是代码中的局部变量.事实上,signal正如你所使用的那样,它可能指的是这个signal功能.
相反,在第一个代码中,您正在switch使用sig,这是int函数的参数.
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |