За puts (const char*)
Я прочитал, что: «В случае успеха возвращается неотрицательное значение. При ошибке функция возвращает EOF и устанавливает индикатор ошибки (ferror)».
Я пытаюсь получить функцию с ошибкой, чтобы я мог cout
возвращение EOF, но я не могу этого сделать. Если я не инициализирую char*
к чему-либо, или установить его в NULL, он по-прежнему возвращает неотрицательное значение успеха. Что-то, что на самом деле может заставить эту функцию не работать? Благодарю.
Дополнительный вопрос: если вы cout <<
функция, которая должна возвращать EOF, будет ли она на самом деле печатать ‘EOF’, что-то еще или ничего? Это на самом деле то, что я пытался проверить в первую очередь.
Если вы работаете в системе, которая поддерживает его (например, Linux), вы можете перенаправить вывод вашей программы в /dev/full
, устройство, которое выдает бесконечный поток нулевых байтов на входе и дает сбой при ENOSPC
(«Нет свободного места на устройстве») на выходе.
./ программа> / dev / full
Конечно, вам придется печатать любые сообщения об ошибках в stderr
(или же std::cerr
) или в файл.
Других решений пока нет …