来自 C 程序的陷阱命令?

Trap command from C program?

我想 运行 来自 C 程序的 trap '' 2 命令来防止 ctrl-ca.out 是 运行.

#define TRAP "trap '' 2"

int     main()
{
    system(TRAP);

    ...
}

我可以从一个 .sh 文件让它工作,该文件也是 运行 程序,但我希望所有内容都在一个 .c 文件中。

trap '' 2
cd /Users/me
./a.out

然后我尝试制作另一个 .c 文件 运行 脚本然后启动第一个 a.out 因为我认为这是第一次没有成功的时间问题...

我怎样才能让它在单个 a.out 内工作或者甚至可能?

trap '' INT 忽略 SIGINT。忽略处置会继承到子进程,因此:

trap '' 2
cd /Users/me
./a.out

忽略 SIGINT 下面的内容,但它不能在进程层次结构中工作。

幸运的是,从 C.

中忽略 SIGINT 并不难
#include <signal.h>
int main()
{
   //....
   signal(SIGINT,SIG_IGN); // `trap '' INT` in C
   //^should never fail unless the args are buggy
   //...
}