我使用的系统()在Linux上推出了Evince决不返回,直到我打开一个文件,并试图关闭它工作正常。当我尝试关闭文件系统()永远不会返回:系统()用了Evince
我的代码:
char systemString[MAXPATHLEN];
sprintf(systemString, "%s", "evince");
int ret = system(systemString);
if (ret == -1)
{
perror("system");
exit(1);
}
任何想法,为什么?如果没有,我怎么调试这个,当它在调试器中使用它永远不会返回它。该代码是相当大,一些信号被阻止,但我尝试了一些我认为这使用和相同的错误。
谢谢
当你从一个shell打开了Evince,它返回? –
如果你从'sh'终端启动'evince'你会遇到同样的问题吗?你有一些错误信息吗? –
不,只从程序内部,从cmd行sh就好了。我跑到另一个程序,以类似的方式启动了Evince,它有没有问题,但其较小的项目,它的东西,我的代码,但我不知道它是什么。如果它在此之前或之后造成它。 –