system()
我用 C 语言编写了一个等待事件的程序,然后按函数运行外部系统命令。
while( true ){
wait_for_event();
system("cmd");
}
我对此有一个严重的问题,这cmd
是一个繁重的命令,需要几秒钟才能完成,我的应用程序在这个时间范围内错过了一些事件。
所以我决定把这个system
很重的函数移到另一个程序中,所以我把我的程序改成如下:
while( true ){
wait_for_event();
write_to_fifo("cmd");
}
并编写了另一个程序:
while(true){
system(read_from_pipe());
}
但这无济于事,因为如果生产者(第一个程序)的写入速度比消费者(第二个程序)快,那么消费者会丢失一些数据!
有没有办法处理这个问题?