我正在解决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/

10-11 22:05