我正在编写一个使用终端流数据的程序。 如果您对以下命令感兴趣:
system("candump slcan0 > sources/file.txt").
我希望系统在x秒内运行该命令。 但系统调用的正常停止会很好,我会编写一些代码,在x秒后执行停止。
程序将处理此数据,因此退出(EXIT_SUCCESS)将无济于事。这将使整个程序停止而不是仅停止系统调用。
答案 0 :(得分:1)
使用fork()和exec()代替使用system()。 fork()将为您提供子进程的PID。
此时,有几种相当标准的方法可以等待子进程退出一段时间。如果它没有,请SIGKILL子进程。 UNIX / POSIX上的大多数书籍都应该有很多例子。