Записать символ в поток
#include <stdio.h>
int fputc( int c,
FILE *fp );
- c
- Символ, который нужно записать.
- fp
- Поток, в который нужно записать символ.
libc
Функция fputc() записывает символ, определяемый c, преобразуя его к (int)(unsigned char)
, в поток, определяемый fp.
Число записанных символов как (int)(unsigned char)
. Если возникла ошибка, функция возвращает EOF
, код ошибки записывается в errno.
- EAGAIN
- Флаг O_NONBLOCK установлен для потока fp и будет заблокирован данной операцией.
- EBADF
- Поток, определенный fp, недоступен для записи.
- EFBIG
- Одна из следующих причин:
- Попытка выполнить запись в файл, достигший максимального размера.
- Попытка выполнить запись в файл, превышающий предельный размер файла процесса.
- Для обычного файла была выполнена попытка записи по максимальному смещению соответствующего потока или за его пределы.
- EINTR
- Сигнал прервал операцию записи; данные не будут переданы.
- EIO
- Одна из следующих причин:
- Возникла физическая ошибка ввода/вывода.
- Процесс, являющийся членом группы фоновых процессов, пытается писать в управляющий терминал,
TOSTOP
установлен, процесс ни игнорирует, ни блокирует SIGTTOU
, группа процеса является осиротевшей. - (расширение ЗОСРВ «Нейтрино») Файловая система находится на съемном устройстве, и это устройство было принудительно извлечено.
- ENOMEM
- Недостаточно места для записи.
- ENXIO
- Запрос был сделан от лица несуществующего устройства, либо запрос лежит вне возможностей устройства.
- ENOSPC
- На устройстве, содержащем файл, не осталось свободного места.
- EPIPE
- Нет возможности записать в канал или FIFO из-за того, что они закрыты; потоку также отправляется сигнал
SIGPIPE
..
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
FILE *fp;
int c;
fp = fopen( "file", "r" );
if ( fp != NULL )
{
while ( (c = fgetc( fp )) != EOF )
{
fputc( c, stdout );
}
fclose( fp );
return (EXIT_SUCCESS);
}
return (EXIT_FAILURE);
}
ANSI, POSIX 1003.1
- Да
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
Если c отрицательно, значение, возвращаемое функцией, не равно c — если c не равно -1
и не произошла ошибка.
errno, fgetc(), fopen(), fprintf(), fputchar(), fputs(), putc(), putchar(), puts()
Предыдущий раздел: Описание API системной библиотеки