Page 72 - 2578
P. 72
читати та писати), які встановлюють або знімають блокування
на файли чи їхні частки.
int fcntl (int filedes, int cmd, …) — функція fcntl(2) виконує
дію, зазначену в cmd, з файлом, а третій аргумент залежить
від конкретної дії:
а) F_SETLK — встановити блокування запису файла;
структура flock описує блокування, а покажчик на неї
передається у третьому аргументі; за неможливості
блокування fcntl(2) повертається з помилкою EACCESS або
EAGAIN.
б) F_SETLKW — аналогічний до попереднього, але
аргумент використовується за неможливості блокування,
якщо запис вже заблоковано; процес переходить до стану сну,
очікуючи на зняття блокування (W_WAIT, очікувати).
в) F_SETFL — визначає режим запису даних наприкінці
файла.
3 Функція printf(2) — запис до форматизованого
стандартного виводу.
4 Системний виклик unlink(2) вилучає файл, наприклад
unlink(“/tmp/usedfile”); виклик повертає 0 у разі успішного
завершення та -1 — у разі помилки.
5 Системний виклик read(2) копіює довільну кількість
символів чи байтів з файла до буфера (в ASCII кодах).
6 Системний виклик open(2) відкриває файл для читання,
запису або створює порожній файл.
7 Системний виклик close(2) закриває файл, повертає його
в разі успішного завершення та -1 — у разі помилки:
#include <unistd.h>
int close (int filedes)
filedes = open(“file”, O_RDONLY);
∙
∙
∙
71