LINUX.ORG.RU

Не работает printf+ thread+pipe ?


0

0

Написал консольную программу, которая выводит через printf сообщения на экран.Потребовалось экран отфильтровать - prog.exe|grep pattern. Оказалось,что printf ,которые находятся в потоках через конвейер не проходят. Проходят только printf из main(). В какую сторону копать ?


Ответ на: комментарий от k0l0b0k

>точно printf? не stderr? printf("%02x",buff[i]);

Oaks
() автор топика

fflush(stdout); после printf(…);

arsi ★★★★★
()

Гуглим по "printf is not thread-safe", быстро находим:

I have already noted elsethread that this is system-dependent; I will now add that, for BSD/OS, printf() *is* thread-safe.

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

все равно, stdout-то один... хоть там и 100 потоков. Мне кажется у ТС где-то перенаправляется stdout > stderr...

ТС: а если так:
mkfifo fifo
yourapp > fifo & cat < fifo | grep blabla
?

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