我有一个函数,它是我的 C 程序中 SIGINT 信号的处理程序,它在执行时只需执行以下命令:
void sigint_handler(int sig)
{
system("cat output.txt");
exit(0);
}
Run Code Online (Sandbox Code Playgroud)
问题是“cat”命令似乎没有做任何事情。如果我尝试做其他事情而不是“cat”,比如“echo something”,它工作正常,所以我相信问题出在“cat”而不是 system() 函数上。文件“output.txt”位于 C 程序的同一目录中,如果我尝试通过另一个 C 脚本对该文件执行 cat ,它会起作用。此外,如果我尝试从 shell 执行该命令,它会起作用。
我已经检查了从 的返回system("cat output.txt"),它是 0。那么问题是什么?
编辑:文件 output.txt 也在程序中作为 FILE 流(使用fopen())打开,由另一个线程打开,这可能是一个问题吗?