Я написал программу на C, которая ждет события, а затем запустите внешнюю системную команду с помощью функции system()
.
while( true ){
wait_for_event();
system("cmd");
}
У меня есть проблема с seriuos, The cmd
является тяжелой командой и занимает несколько секунд, и мое приложение пропускает некоторые события за этот период времени.
Поэтому я решил переместить функцию system
, которая очень тяжелая, в другую программу, поэтому я изменил свою программу следующим образом:
while( true ){
wait_for_event();
write_to_fifo("cmd");
}
и написал другую программу:
while(true){
system(read_from_pipe());
}
но это не помогает, потому что если производитель (1-я программа) пишет быстрее, чем потребитель (вторая программа), тогда потребитель пропускает некоторые данные!
Есть ли способ справиться с этой проблемой?