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
   67   68   69   70   71   72   73   74   75   76   77