我使用system()在Linux上启动evince,在加载文档并尝试关闭它之前,它工作正常。当我试图关闭文档系统时()永远不会返回:
我的代码:

char systemString[MAXPATHLEN];
sprintf( systemString, "%s", "evince" );

int ret = system( systemString );
if ( ret == -1 )
{
   perror( "system" );
   exit(1);
}

知道为什么吗?如果没有,我如何调试它,当在调试器中使用它时,它也不会返回。代码相当大,有些信号被屏蔽,但我尝试了一些我认为使用的和相同的错误。
谢谢

最佳答案

我找到它是因为SIGTERM被屏蔽了但是程序。这是一个庞大的遗留项目。

10-08 08:11