История изменений
Исправление vodz, (текущая версия) :
Сообщение не теряется (просто читается в два захода).
Это нормально. Такое происходит когда внутри программы реализовано в два вывода, вначале выводится сообщение в конкретном месте, что не смогла, а потом вызывается печать системной ошибки из кода уже при аварийном завершении. При чтении из pipe проиходит получение двух буферов. stderr не буферизуется и потому выводится всё одним куском с fflush при каждом выводе.
У меня файл в неблокирующем режиме, и после отправки команды в bash, ответ ещё не сформирован, а я пытаюсь его прочитать.
Это хорошая догадка, но не правильная. Как вы узнаете, что ответ уже полностью сформирован? А если там много-много чего будет написано, типа хелпа по вызову программы? Этот хелп при приличных размерах может даже при всё желании не поместиться в один PIPE_BUF.
Исправление vodz, :
Сообщение не теряется (просто читается в два захода).
Это нормально. Такое происходит когда внутри программы реализовано в два вывода, вначале выводится сообщение в конкретном месте, что не смогла, а потом вызывается печать системной ошибки из кода уже при аварийном завершении. При чтении из pipe проиходит получение двух буферов. stderr не буферизуется и потому выводится всё одним куском с fflush при каждом выводе.
Исправление vodz, :
Сообщение не теряется (просто читается в два захода).
Это нормально. Такое происходит когда внутри программы реализовано в два вывода, вначале выводится сообщение в конкретном месте, что не смогла, а потом вызывается печать системной ошибки из кода уже при аварийном завершении.
Исходная версия vodz, :
Сообщение не теряется (просто читается в два захода).
Это нормально, когда внутри программы реализовано в два вывода, вначале выводится сообщение в конкретном месте, что не смогла, а потом вызывается печать системной ошибки из кода уже при аварийном завершении.