Открытие файлов для блокировки сегментов
Первое требование для блокировки файла или сегмента файла состоит в том, чтобы иметь корректный дескриптор файла. Если будет устанавливаться блокировка на чтение, файл должен быть открыт как минимум на чтение. Соответственно, для блокировки на запись необходим доступ на запись. В следующем примере файл открывается как на чтение, так и на запись.
#include <stdio.h> #include <errno.h> #include <fcntl.h>
int fd; /* дескриптор файла */ char *filename;
main (argc, argv) int argc; char *argv []; { extern void exit (), perror ();
/* Получение имени файла базы данных из командной строки и открытие файла на чтение и запись. */
if (argc < 2) { (void) fprintf (stderr, "Usage: %s file\n", argv[0]); exit (2); } filename = argv [1]; fd = open (filename, O_RDWR); if (fd < 0) { perror (filename); exit (2); } . . .
Теперь файл открыт для выполнения как блокировок, так и функций ввода-вывода. Попробуем теперь установить блокировку.