Я не понимаю, почему fputs и fprintf меняют порядок потоков.
int fputs (const char * str, FILE * stream);
int fprintf (FILE * stream, const char * format, ...);
ssize_t write(int fd, const void *buf, size_t count);
Я знаю, что fprintf перенаправляет поток для поддержки переменных аргументов, но почему серии fputs не сохраняют согласованность ???
printf
сделал это по необходимости (как вы уже заметили), аfputs
, вероятно, к тому времени уже был установлен, поэтому изменение его места для соответствия было сочтено несостоятельным. - person Jerry Coffin   schedule 15.01.2015stdio
вообще плохо спроектированная библиотека: с ней много других проблем. - person user207421   schedule 15.01.2015fwrite()
означает, что если есть частичная запись, он не может сказать вам, сколько байтов было записано, только сколько элементов, так что вы никогда не можете знать про неполный элемент напишите. Лучше бы его не было. Другим примером является размещение параметровFILE *
в конце, а не в начале. В то время существовали более совершенные API. - person user207421   schedule 15.01.2015