fputs/puts опасны (в C)?

В последнее время у меня возникли проблемы с fputs: при печати некоторых строк в текстовом файле с помощью fputs я получаю символы, отличные от A-Z, a-z, 0-9 (символы, которые не являются частью строки). Я абсолютно уверен, что все строки заканчиваются нулевым символом. К сожалению, я не могу дать вам больше информации, так как я лично не тестировал программу, это были отзывы, которые я получил. Но после того, как я заменил fputs на fprintf, все заработало правильно.

Итак, мой вопрос: опасны ли fputs? Были ли у вас когда-нибудь проблемы с этим?


person Mihai Neacsu    schedule 08.05.2011    source источник


Ответы (2)


fputs по своей сути не опасен. Конечно, без примера кода трудно сказать, что вызвало проблему, которую вы видели.

person Trent    schedule 08.05.2011

fputs() не является "опасной" функцией (в отличие от gets(), которая опасна). Строки, которые вы печатаете, на самом деле содержат символы, которые попадают в файл. Без кода мы не можем знать, как они туда попали.

person Greg Hewgill    schedule 08.05.2011
comment
обратите внимание, что fgets, в отличие от gets, принимает параметр длины, поэтому считается безопасным. - person Trent; 09.05.2011