Я написал программу для анализа файлов журнала в реальном времени. Мне нужно передать его IP-адресам. Он отлично работает с командой:Труба непрерывного потока в другую команду
cat /var/log/apache2/access.log | awk '{print $1}' | ./my_program
Кроме того, я могу получить IP-адреса в режиме реального времени с помощью команды:
tail -f /var/log/apache2/access.log | awk '{print $1}'
Когда я труба это моя программа, моя программа ничего не получит:
tail -f /var/log/apache2/access.log | awk '{print $1}' | ./my_program
Это похоже на буферизацию. Есть ли способ непрерывного потока трубопроводов в мою программу?
Если буферизация делается 'awk' тогда вы могли бы сделать его линии в буфер. Вы можете попробовать 'tail -f /var/log/apache2/access.log | awk -W interactive '{print $ 1}' | ./my_program', чтобы увидеть, как это работает? –