LINUX.ORG.RU
ФорумTalks

pipe


0

0

mkfifo /tmp/pingpipe
ping www.linux.org.ru > /tmp/pingpipe 2>&1 &
cat /tmp/pingpipe > /dev/null 2>&1 &
cat /tmp/pingpipe
64 bytes from linux.org.ru (217.76.32.61): icmp_seq=10 ttl=58 time=35.7 ms
64 bytes from linux.org.ru (217.76.32.61): icmp_seq=12 ttl=58 time=28.7 ms
64 bytes from linux.org.ru (217.76.32.61): icmp_seq=14 ttl=58 time=32.8 ms
64 bytes from linux.org.ru (217.76.32.61): icmp_seq=16 ttl=58 time=37.5 ms

Извините за дремучесть, а что, если у трубы несколько нахлебников, данные демультиплексируются?

Насколько я понимаю, если несколько потоков читают из одной трубы, то чтение производится по принципу "кто не успел, тот опоздал". Как и из устройств типа /dev/(u)random.

Sikon ★★★
()
Ответ на: комментарий от Sikon

> Насколько я понимаю

Ты верно все понимаешь сын мой :) pipe можно условно говоря рассматривать как std::queue<char>, где каждое чтение - снятие байтиков с очереди, с последующим удалением.

fmj
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.