![]() |
![]() | #1 |
Ребе - коп! Join Date: 03 2003 Location: sfba Age: 44
Posts: 4,188
Downloads: 0 Uploads: 0
Reputation: 29 | 4 | ![]()
Люди, никаких мыслей нет как можно в своем же процессе stdout редиректнуть?
|
![]() |
![]() | #2 |
Грустно... Join Date: 08 2002 Location: Там, где всегда идут дожди Age: 38
Posts: 21,717
Downloads: 2 Uploads: 0
Reputation: 250 | 8 | ![]()
Серге, как я уже предлагал - вот решение. PHP Code: |
![]() |
![]() | #3 |
Ребе - коп! Join Date: 03 2003 Location: sfba Age: 44
Posts: 4,188
Downloads: 0 Uploads: 0
Reputation: 29 | 4 | ![]()
Ой Вить, то была другая задача. я тогда про цоут спрашивал. streambuf -ом нормально получилось. Мне не в файл надо а редиректать к примеру в стринг. и реалтиме выводить стринг по мере поступления строк. мониторить этот файл довольно неинтересно. Вот если б FILE * связать с цоут -ом.. было бы интересно.. а как.. вот popen() вроде интересня штука. ща почитаюсь.. |
![]() |
![]() | #5 |
Ребе - коп! Join Date: 03 2003 Location: sfba Age: 44
Posts: 4,188
Downloads: 0 Uploads: 0
Reputation: 29 | 4 | ![]()
Уф. вопшем сенц: есть функции, к которым доступа я не имею(т.е. заменить там ничего не могу.), которые в моем процессе же вызывают printf(). Вместо того чтоб выводить на stdout мне надо выводить это дело в логвиндоу к примеру.
|
![]() |
![]() | #6 |
Грустно... Join Date: 08 2002 Location: Там, где всегда идут дожди Age: 38
Posts: 21,717
Downloads: 2 Uploads: 0
Reputation: 250 | 8 | ![]()
А лог виндоу может следить за файлом, когда в него что либо записывается? Например - проверять лас врайт дейт? Если может - тогда, как сделал я в примере переводи все в лог файл, а лог виндоу пусть из него грузит. |
![]() |
![]() | #7 |
Ребе - коп! Join Date: 03 2003 Location: sfba Age: 44
Posts: 4,188
Downloads: 0 Uploads: 0
Reputation: 29 | 4 | ![]()
Когда проверять ласт врайт дейт? Всегда? Это наихудший вариант. НОвый тред для этого надо. Или сигнал генерируется? ворде генерируется на стейт чендж.. Так, подругому: как мне поймать факт изменения файла? система линукс. |
![]() |
![]() | #8 |
Грустно... Join Date: 08 2002 Location: Там, где всегда идут дожди Age: 38
Posts: 21,717
Downloads: 2 Uploads: 0
Reputation: 250 | 8 | ![]()
про линукс это уже не ко мне ![]() ну кстати можно так. Раз в 2 секунды читать файл. Если не будет новых записей - то ничего не прочтется если будут прочтется. Только лог файл надо быдет открыть с шарингом на запись. |
![]() |
![]() | #9 |
Ребе - коп! Join Date: 03 2003 Location: sfba Age: 44
Posts: 4,188
Downloads: 0 Uploads: 0
Reputation: 29 | 4 | ![]()
Это наихудший вариант... Вот в libc manual написано : if you set the 0_ASYNC status flag on a file descriptor, a SIGIO signal is sent whenever input or output becomes possible on that file descriptor. Кто -нить знает что значит бикамс поссибл? |
![]() |
![]() | #11 |
Ребе - коп! Join Date: 03 2003 Location: sfba Age: 44
Posts: 4,188
Downloads: 0 Uploads: 0
Reputation: 29 | 4 | ![]()
а когда это происходит? каждый раз как запишу в файл? или при смене стейта файла? А ладно, ща попробую ![]() |
![]() |
![]() | #12 |
Дошкольник Join Date: 03 2003 Location: 2A Age: 52
Posts: 104
Downloads: 0 Uploads: 0
Reputation: 0 | 0 | ![]()
перехват системных функции http://www.lowlevel.ru/articles/sys_call.htm |
![]() |
![]() | #13 |
Guru Apprentice Join Date: 02 2002 Location: /dev/null Age: 44
Posts: 524
Downloads: 0 Uploads: 0
Reputation: 0 | 0 | ![]()
Speedy, отвечу не как программист, а как админ: если мне надо следить за файлом и показывать изменения "по мере" - я пользуюсь програмкой tail с опцией -f. Как это запрограммировать - не знаю, но те кто этот tail написали точно знают. А на счет becomes available: я так думаю если кто-то файл отрыл для экслкюзивного чтения/записи (lock поставил каким-либо образом) а потом файл "отпустил" - вот у тебя файл и become available будет.
|
![]() |
Sponsored Links |