我使用system()在Linux上启动evince,它工作得很好,直到我加载一个文档并尝试关闭它。当我尝试关闭文档system()时,它永远不会返回:
我的代码:
char systemString[MAXPATHLEN];
sprintf( systemString, "%s", "evince" );
int ret = system( systemString );
if ( ret == -1 )
{
perror( "system" );
exit(1);
}知道为什么吗?如果没有,我该如何调试它,当在调试器中使用它时,它也不会在其中返回。代码相当大,一些信号被阻塞,但我尝试了一些我认为这是使用和相同的错误。
谢谢
发布于 2011-11-22 22:30:26
我找到它是因为SIGTERM被阻止了,但是程序。这是一个大型的遗留程序。
https://stackoverflow.com/questions/8218522
复制相似问题