int write(int handle, void *buf, int count)
int _rtl_write(int handle, void *buf, int count)
Прототип:
Описание:
Функция write() является частью UNIX-подобной системы ввода/вывода и не определена стандартом ANSI С.
Функция write() переписывает count байт из буфера, на который указывает bufy в файл, соответствующий дескриптору файла handle. Указателю положения в файле дается приращение на количество записанных байт. Если файл открыт в текстовом режиме, то символы перевода строки автоматически дополняются символами возврата каретки. Тем не менее _rtl_write() не производит таких дополнений.
Возвращаемым значением является количество действительно записанных байт. Если встретится ошибка, это количество может быть меньше, чем count. В случае ошибки возвращается —1, a errno устанавливается в одно из следующих значений:
| errno | Значение |
|---|---|
| EACCESS | Доступ запрещен |
| EBADF | Недействительный номер файла |
Пример:
Следующая программа переписывает 100 байт из buffer в файл test. #include <stdio.h> #include <io.h> #include <fcntl.h> #include <stdlib.h> int main(void) { int fd; char buffer[100]; if ((fd=open("test", O_WRONLY))==-1) { printf ("Cannot open file.\n"); exit(1); } gets (buffer); if(write(fd, buffer, 100) !=100) printf("Write Error"); close(fd); return 0; }
