powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Синхронное чтение вывода процесса
8 сообщений из 33, страница 2 из 2
Синхронное чтение вывода процесса
    #39391848
Common Lisp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)Barlone,

в стандартный поток вывода никто не буферизует
7.19.3 Files, paragraph 7At program startup, three text streams are predefined and need not be opened explicitly - standard input (for reading conventional input), standard output (for writing conventional output), and standard error (for writing diagnostic output). As initially opened, the standard error stream is not fully buffered; the standard input and standard output streams are fully buffered if and only if the stream can be determined not to refer to an interactive device .
Так что, если stdout это pipe, то вполне могут буферизовать.
...
Рейтинг: 0 / 0
Синхронное чтение вывода процесса
    #39391978
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)в стандартный поток вывода никто не буферизуетпроверяем:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
#include <stdio.h>
#include <windows.h>
int main()
{
   printf("Hello\n");
   Sleep(10000);
   return 0;
}

Компилируем, запускаем test.exe
Выводится "Hello", потом пауза, и через 10 секунд программа завершается. Так действительно не буферизуется.
А теперь так: test.exe | find "Hello"
Видим сначала паузу 10 секунд, потом выводится "Hello" и программа сразу завершается. Упс. А может это find виноват?
Вставляем fflush(stdout) между printf и Sleep.
Компилируем, запускаем test.exe | find "Hello".
Выводится "Hello", потом пауза. Медитируем над результатом.
...
Рейтинг: 0 / 0
Синхронное чтение вывода процесса
    #39392000
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone,

в моём случае видимо fflush не забыли
...
Рейтинг: 0 / 0
Синхронное чтение вывода процесса
    #39392007
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)Dima T,

через пайпы и читаю, дело в том что размер буфера для пайпа довольно большой
MSDNnSize [in]
The size of the buffer for the pipe, in bytes. The size is only a suggestion; the system uses the value to calculate an appropriate buffering mechanism.
и пока он не заполнится процесс не стопорится.А откуда уверенность, что это не буферизация stdout?
...
Рейтинг: 0 / 0
Синхронное чтение вывода процесса
    #39392180
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarloneА откуда уверенность, что это не буферизация stdout?
тестовый пример составил с выводом времени
...
Рейтинг: 0 / 0
Синхронное чтение вывода процесса
    #39392629
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan), все получилось?
...
Рейтинг: 0 / 0
Синхронное чтение вывода процесса
    #39392780
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlonekealon(Ruslan), все получилось?
"легальными способами" - нет, смотрю альтернативные варианты пока
держу хук на крайний случай
...
Рейтинг: 0 / 0
Синхронное чтение вывода процесса
    #39393836
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
kealon(Ruslan)есть консольное приложение (не моё), выводящее текст
как можно организовать его "фриз" пока я не дам ему буфер для вывода? выводи в файл стандартными средствами перенаправления вывода
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Синхронное чтение вывода процесса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]