我在C中编写了一个等待事件的程序,然后通过system()函数运行一个外部系统命令.
while( true ){ wait_for_event(); system("cmd"); }
我有一个seriuos问题,该cmd是一个沉重的命令,需要几秒钟才能完成,我的应用程序在这个时间框架内错过了一些事件.
所以我决定将系统功能,这是非常重的,移动到另一个程序,所以我改变了我的程序如下:
while( true ){ wait_for_event(); write_to_fifo("cmd"); }
并写了另一个程序:
while(true){ system(read_from_pipe()); }
但是没有帮助,因为如果生产者(第一个程序)的写入速度比消费者快(第二个程序),那么消费者会错过一些数据!
有没有办法处理这个问题?