3.3.2          Функції префіксного файлового введення-виведення

Перенос інформації між прикладною програмою і файлом, відкритим для префіксного доступу, виконують дві пари функцій read()/_read() і write()/_write().

#include <io.h>
int read( int handle, void *buf, unsigned len )
int _read( int handle, void*buf, unsigned len )

Виконують читання len байтів з відкритого файлу, асоційованого з префіксом handle. Прочитані дані розташовуються в пам’яті, починаючи з адреси, що задається покажчиком buf. В випадку успішного читання повертається прочитане число байтів. Повернуте значення числа байтів може бути менше запрошеного числа len, якщо файл є спеціальним символьним файлом або число байтів, що залишалися в файлі, менше ніж lеn; при досягненні кінця файлу повертається 0. Спроба читання після досягнення EOF повертає помилку. Ця і інші помилки визначаються поверненням функцією значення (-1) і записом коду помилки в зовнішню змінну errno. Операція читання починається з поточної позиції покажчика запису-читання файлу. Після виконання операції читання покажчик зміщується до кінця файлу на число фактично прочитаних байтів.

#include <io.h>
int write( int handle, void *buf, unsigned lеп )
int _write( int handle, void *buf, unsigned 1еп )

Виконують запис len байт в відкритий файл, асоційований з префіксом handle. Дані що записуються знаходяться в оперативній пам’яті, починаючи з адреси, що задається покажчиком buf. В випадку успішного запису повертається фактично перенесене число байтів; в протилежному випадку повертається (-1) і код помилки записується в зовнішню змінну errno. Операція запису починається з поточної позиції покажчика запису-читання файлу. Після виконання операції запису покажчик просувається до кінця файлу на число фактично перенесених байтів.