Я новичок в C, и я пытаюсь понять, что происходит в fgets()
, когда указано на stdin
.Что делает fgets() на самом деле ждать ввода пользователя, если указана на stdin?
В основном мой вопрос заключается в следующем, простите меня, я не мог бы на самом деле понять fgets()
, что хорошо:
Если я указываю указатель на какой-то файл, чтобы использовать в fgets()
, то fgets()
читает из этого места и далее до любой \n
, EOF
, или указанный limit-1
Так почему же он ведет себя по-другому, если я указываю на stdin
, в том смысле, что делает его ждать ввода пользователя, а не просто не находя ничего читать и, следовательно, возвращение NULL
?
Спасибо за ваше время
Возврат NULL означает, что конец файла был достигнут. Не печатать что-либо не так, как в конце файла. –
'fgets' всегда ждет. Разница в том, что времена ожидания для файла на диске настолько малы, что вы их не замечаете. – user3386109
@ user3386109 Это на самом деле не так. В 'FILE *', возвращаемом 'fmemopen', это может не подождать, в зависимости от реализации курса. –