这部分代码指示我的程序(生成屏幕截图)生成命令并退出(关闭)自身。这可用于使用程序中的键切换到程序,例如生成“gimp”或用户想要使用的另一个图像编辑器。
case SWITCH_TO:
if( arg ) {
char commandline[ 256 ];
snprintf( commandline, sizeof (commandline), "%s &", arg );
system( commandline );
cmd->quit = 1;
}
break;
例如使用:
program-command SWITCH_TO "gimp"
将使我的程序调用系统(“gimp &”),退出(关闭)本身并运行gimp。
program-command SWITCH_TO "fotoxx"
将使我的程序调用系统(“fotoxx &”),退出(关闭)本身并运行 fotoxx。
我希望我的程序检查“命令行”是否有效(在 $PATH 中找到的应用程序),如果无效,则命令“program-command SWITCH_TO”不运行并且不关闭我的程序(“cmd->quit = 1”执行此操作,关闭程序)。
Thanks
作为初始解决方案,您可以尝试添加对返回值的检查system()
call.
如果出错,则返回 -1,否则返回您运行的程序的状态。不确定后者在您使用时的行为如何&
获得一个子进程。也不确定这是否足以让孩子与父母分离;如果没有,当您退出应用程序时,孩子将终止。
正如其他人所建议的,研究一下fork()
and exec()
呼吁正确地做到这一点。您可以使用普通的exec()
to replace您的流程与您希望启动的程序的流程;如果失败,您仍在运行,因此在这种情况下您永远不需要设置退出标志。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)