История изменений
Исправление mky, (текущая версия) :
В приведённом вами исходнике вобще нет ни одного fprintf(stdout,...) или куда ещё, кроме потока stderr. Так что, либо давайте компилируемый исходник, дающий такое поведение, либо ищите, где вы пишете лишний '\n' в поток stdout, после того, как делаете fflush(), так что в буфере stdout остаётся только этот '\n'.
Или можете попробовать отключить буферизацию вывода на stdout через setvbuf(_IONBF) и буферизацию других потоков вывода (создаваемых через fopen()/fdopen()) и посмотреть, появляется ли этот '\n' в файле и в конце ли файла он появляется.
так вот если программе непосредственно задать имя файла, то она запишет вывод в этот файл
Программа просто пишет в этот файл через отдельный файловый дескриптор или заменяет им STDOUT через dup2()?
Исходная версия mky, :
В приведённом вами исходнике вобще нет ни одного fwrite(stdout,...). Так что, либо давайте компилируемый исходник, дающий такое поведение, либо ищите, где вы пишете лишний '\n' в поток stdout, после того, как делаете fflush(), так что в буфере stdout остаётся только этот '\n'.
Или можете попробовать отключить буферизацию вывода на stdout через setvbuf(_IONBF) и буферизацию других потоков вывода (создаваемых через fopen()/fdopen()) и посмотреть, появляется ли этот '\n' в файле и в конце ли файла он появляется.
так вот если программе непосредственно задать имя файла, то она запишет вывод в этот файл
Программа просто пишет в этот файл через отдельный файловый дескриптор или заменяет им STDOUT через dup2()?