【发布时间】:2018-03-05 13:07:14
【问题描述】:
我正在尝试在 eInk 显示器上显示一些值(通过 SPI)。我已经编写了软件来初始化显示并显示作为命令行参数传递的值。问题是,由于 eInk 技术,显示需要几秒钟才能完全实现,所以显示程序也在这段时间内运行。
另一个(“Master”-)程序收集值并做其他事情。它有一个主循环,必须以至少 10 次/秒的速度循环。 所以我想从主循环中启动显示程序并立即继续循环。
当使用system()或execl()时,主程序要么等待显示程序完成,要么退出新进程。
有没有办法只从其他程序中启动其他程序,而它们之间没有任何进一步的联系?它应该在 Linux 上运行。 可以 fork() 解决吗?
【问题讨论】:
-
你可以试试
system("your command")或pthreads。 -
fork()+exec()是一种方式。system("your command &");是另一个。 -
您是否关心程序是否无法启动?
-
"t 有一个主循环,它必须至少循环通过 10x/秒" 那是什么样的实时要求?如果您的主循环执行时间超过 100 毫秒,那么您将遇到一些真正严重的问题。现在你应该在这里做的是编写一个多线程程序。