我使用fork()创建一个简单的应用程序来执行.bundle文件。我在ubuntu 14和centos 5上测试过它工作正常。它将提示显示文件安装的终端。但是当我在fedora 22上测试时它不起作用。没有终端会出现。它只有在我直接从终端运行我的应用程序时才会起作用。如果我双击应用程序它将无法正常工作。我尝试使用execl()和system()都不起作用。任何人都可以帮助我。以下是我的代码
int status;
pid_t child_pid = fork();
if(child_pid < 0)
{
printf("fork failed\n");
exit(1);
}
if (child_pid != 0)
{
printf("parent process\n");
wait(NULL);
//waitpid(child_pid,&status,0);
if (WIFEXITED(status))
{
printf("signal exit\n");
exit(0);
}
}
else if (child_pid == 0)
{
printf("child process\n");
int err = 0;
err = execlp("/tmp/test.bundle", NULL);
if( err != 0)
printf("Error execl : %d",err);
//system("/tmp/test.bundle");
exit(0);
}