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;
}
#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;
}