Перенос інформації між прикладною програмою і файлом, відкритим для префіксного доступу, виконують дві пари функцій 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. Операція запису починається з
поточної позиції покажчика запису-читання файлу. Після виконання операції
запису покажчик просувається до кінця файлу на число фактично перенесених
байтів.
![]() |
![]() |
![]() |