我正在解决Linux/POSIX问题,我不知道我的头/库等有什么问题。
这是我的代码:
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <setjmp.h>
jmp_buf buf;
void handler(int sig){ siglongjump(buf, 1); }
int main(){
signal(SIGUSR1, handler);
if(sigsetjmp(buf,1)==0)
printf("A");
if(fork() == 0){ // child process
kill(getpid(), SIGUSR1); exit(0);}
我包括:
<stdio.h>
、<signal.h>
、<stdlib.h>
和<setjmp.h>
;我还使用-lc
选项编译。但我得到了一个未定义的
siglongjump
引用。为什么? 最佳答案
函数名拼写错误。不是siglongjump
而是siglongjmp
:)
关于c - 未定义对siglongjump的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28519228/