Системное программирование в UNIX средствами Free Pascal


         

Первый аргумент, pathname, является указателем


uses linux;
Function  fdOpen(PathName:String;flags:longint):longint;
Function  fdOpen(PathName:Pchar;flags:longint):longint;
Function  fdOpen(PathName:String;flags,mode:longint):longint;
Function  fdOpen(PathName:Pchar;flags,mode:longint):longint;
Первый аргумент, pathname, является указателем на строку маршрутного имени открываемого файла. Значение pathname может быть абсолютным путем, например:
/usr/keith/junk
Данный путь задает положение файла по отношению к корневому каталогу. Аргумент pathname может также быть относительным путем, задающим маршрут от текущего каталога к файлу, например:
keith/junk
или просто:
junk
В последнем случае программа откроет файл junk в текущем каталоге. В общем случае, если один из аргументов системного вызова или библиотечной процедуры – имя файла, то в качестве него можно задать любое допустимое маршрутное имя файла UNIX.
Второй аргумент системного вызова fdopen, который в нашем описании называется flags, имеет целочисленный тип и определяет метод доступа. Параметр flags принимает одно из значений, заданных постоянными в модуле linux при помощи директивы const (fcntl является сокращением от file control, «управление файлом»). Так же, как и большинство стандартных модулей, файл linux.ppu может быть включен в программу при помощи директивы:
uses linux;
В модуле linux определены три постоянных, которые сейчас представляют для нас интерес:
Open_RDONLY  Открыть файл только для чтения
Open_WRONLY  Открыть файл только для записи
Open_RDWR      Открыть файл для чтения и записи
В случае успешного завершения вызова fdopen и открытия файла возвращаемое вызовом fdopen значение будет содержать неотрицательное целое число – дескриптор файла. Значение дескриптора файла будет наименьшим целым числом, которое еще не было использовано в качестве дескриптора файла выполнившим вызов процессом – знание этого факта иногда может понадобиться. Как отмечено во введении, в случае ошибки вызов fdopen возвращает вместо дескриптора файла значение -1. Это может произойти, например, если файл не существует. Для создания нового файла можно использовать вызов fdopen с параметром flags, равным Open_CREAT, – эта операция описана в следующем разделе.

Содержание  Назад  Вперед