int read(int fd, void *buf, unsigned count)
int _rtl_read(int fd, void *buf, unsigned count)
Ни одна из этих функций не определена стандартом ANSI С. Функция read() является частью UNIX-подобной системы ввода/вывода. Функция _rtl_read() является принадлежностью Borland С++ и операционной системы Windows.
Функция read() считывает count байт из файла, описываемого аргументом fd, в буфер, на который указывает аргумент buf Указателю положения в файле дается приращение на количество считанных байт. Если файл открыт в текстовом режиме, то может иметь место транслирование символов.
Функция возвращает количество действительно считанных байт. Это количество может быть меньше, чем count, если встретился маркер конца файла или если до того, как было считано count байт, произошла ошибка. В случае ошибки возвращается —1, а 0 возвращается при попытке чтения в конце файла. Если произошла ошибка, errno устанавливается в одно из следующий значений:
EACCESS | Доступ запрещен |
EBADF | Недействительный номер файла |
Разница между функциями read() и _rtl_read() заключается в том, что read() удаляет символы «возврат каретки» и возвращает EOF при считывании из текстового файла CTRL-Z. Функция _rtl_read() не выполняет этих действий.