Когда сработает put ()?

За puts (const char*)Я прочитал, что: «В случае успеха возвращается неотрицательное значение. При ошибке функция возвращает EOF и устанавливает индикатор ошибки (ferror)».

Я пытаюсь получить функцию с ошибкой, чтобы я мог cout возвращение EOF, но я не могу этого сделать. Если я не инициализирую char* к чему-либо, или установить его в NULL, он по-прежнему возвращает неотрицательное значение успеха. Что-то, что на самом деле может заставить эту функцию не работать? Благодарю.

Дополнительный вопрос: если вы cout << функция, которая должна возвращать EOF, будет ли она на самом деле печатать ‘EOF’, что-то еще или ничего? Это на самом деле то, что я пытался проверить в первую очередь.

0

Решение

Если вы работаете в системе, которая поддерживает его (например, Linux), вы можете перенаправить вывод вашей программы в /dev/full, устройство, которое выдает бесконечный поток нулевых байтов на входе и дает сбой при ENOSPC («Нет свободного места на устройстве») на выходе.

./ программа> / dev / full

Конечно, вам придется печатать любые сообщения об ошибках в stderr (или же std::cerr) или в файл.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]