我有这样的代码:C/C++:调用一个函数退出与的sigaction()不工作
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <wiringPi.h>
#include <signal.h>
void exfunc(sig_t s) {
...
exit(1);
}
int main(void) {
...
sigaction(SIGINT,exfunc);
...
}
,当我尝试编译这段代码,我得到以下错误:
main.cpp: In function 'int main()':
main.cpp:36:25: error: cannot convert 'void (*)(sig_t) {aka void (*)(void (*)(int))}' to 'const sigaction*' for argument '2' to 'int sigaction(int, const sigaction*, sigaction*)'
我找不到这个错误。我做错了什么?我是C/C++编程新手。
这看起来像C,而不是C++。 – Brian
从[我收集](http://www.gnu.org/software/libc/manual/html_node/Sigaction-Function-Example.html)中,'sigaction'是您需要填充的结构,而不是函数指针类型('sa_handler'字段似乎是函数指针所在的位置)。 – Cameron
真的没有“C/C++”这样的东西。 C和C++是不同的,并且需要不同的编程风格。 –