我正在尝试编写一个打开xeyes应用程序的c代码,然后那些眼睛会在特定的时间内不断改变它的颜色。
我尝试通过执行具有一种中心颜色的xeyes,添加3秒的延迟,终止进程,以及在循环内打开具有其他中心颜色的xeyes等来实现此目的。
然而,在执行此代码时,第一个xeyes进程不会被杀死,并且以下进程不会执行。有更好的方法吗?
答案 0 :(得分:1)
原因是您正在使用system()命令,该命令等待xeyes关闭。这种情况永远不会发生,因此您的代码永远不会执行第一个系统命令。
您可以通过键入
找到有关您正在使用的功能的更多信息man system
在命令行上。
答案 1 :(得分:0)
我不会用C来做这件事。你最好使用shell脚本在后台启动xeyes,休眠,然后杀死它并再次启动它。它可能大约有5行。
也就是说,为了让计时器在xeyes运行时而不是在关闭之后运行,你需要分离你的xeyes进程并运行等待在单独进程中终止它的计时器。您可能想要查看spawn.h中的函数。