我正在编程客户端/服务器应用程序,客户端提供文件名,然后服务器将其发送给客户端,然后客户端将其保存..
所以我想让信号处理程序来处理父母与孩子之间的僵尸问题,所以信号的这段代码:
enter code here
Sigfunc *
signal(int signo, Sigfunc *func)
{
struct sigaction act, oact;
act.sa_handler = func;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
if (signo == SIGALRM) {
#ifdef SA_INTERRUPT
act.sa_flags |= SA_INTERRUPT; /* SunOS 4.x */
#endif
} else {
#ifdef SA_RESTART
act.sa_flags |= SA_RESTART; /* SVR4, 44BSD */
#endif
}
if (sigaction(signo, &act, &oact) < 0)
return(SIG_ERR);
return(oact.sa_handler);
}
/* end signal */
The filename is : myHeader.h
and the error when compile the file is :
gcc -Wall -I/home/zmhnk/Desktop/ -o "myHeader" "myHeader.h" (in directory: /home/zmhnk/Desktop)
myHeader.h:281:1: error: unknown type name ‘Sigfunc’
myHeader.h:282:19: error: unknown type name ‘Sigfunc’
Compilation failed.
so how to solve this problem ???
最佳答案
您需要声明Sigfunc
,因此在头文件中放置以下内容:
typedef void (*Sigfunc)(int sig_no);
在您的头文件中。
并且由于已经有一个名为
signal
的标准函数,因此您需要为函数命名。