我是Linux的新手,而不是c的专家。
尽管进行了大量搜索,但我无法理解如何使用exec启动应用程序。
以下是我的代码片段:
else if(cpid>0){
write(STDOUT_FILENO,"in parent",9);
sleep(1);
wait(NULL);
write(STDOUT_FILENO,"CLOSE",5);
exit(1);
}
else{ //child
execl("menu://applications/Accessories","menu://applications/Accessories","Galculator",NULL);
exit(1);
}
请指导我。 谢谢
答案 0 :(得分:0)
尝试
if (argc != 2) /* [0] = "run", [1] = "app to run" */
{
fprintf(stderr, "Usage: run <app name>\n");
exit(1);
}
const char *app = argv[1];
int ret;
ret = execl(app, app, NULL);
if (ret < 0)
perror("execl");
Linux中的路径基于文件系统路径,看起来您在使用任何窗口管理器中的GUI元素返回的路径时会感到困惑。如果你的binpath中有galculator
(它应该来自我所知道的),这应该有效。