long l_sysid; /* системный идентификатор процесса, блокирующего файл */
F_GETLK прочитать первый код блокировки, мешающей использовать значение arg и затирать его. Если блокировка отсутствует, поменять значение l_type в arg на F_UNLCK
F_SETLK установить или снять блокировку файла в зависимости от значения arg. В случае невозможности установить блокировку вернуть -1
F_SETLKW установить или снять блокировку содержащихся в файле данных в зависимости от значения arg. В случае невозможности установить блокировку приостановить выполнение
Блокировки, связанные с чтением из файла, могут перекрывать друг друга. Блокировки, связанные с записью, перекрываться не могут.
fork
fork()
Функция fork создает новый процесс. Порождаемый процесс представляет собой логическую копию процесса-родителя. На выходе из функции процессу-родителю возвращается код идентификации потомка, потомку — нулевое значение.
getpid
getpid()
Функция getpid возвращает идентификатор вызывающего процесса. Эту же точку входа используют функции: getpgrp, возвращающая идентификатор группы, в которую входит вызывающий процесс, и getppid, возвращающая идентификатор процесса, который является родителем текущего процесса.
getuid
getuid()
Функция getuid возвращает фактический код идентификации пользователя вызывающего процесса. Эту же точку входа используют функции: geteuid, возвращающая исполнительный код идентификации пользователя, getgid, возвращающая групповой код, и getegid, возвращающая исполнительный групповой код идентификации вызывающего процесса.
ioctl
ioctl(fildes, cmd, arg)
int fildes, cmd;
Функция ioctl выполняет набор специальных операций по отношению к открытому устройству, дескриптор которого указан в параметре fildes. Тип команды, выполняемой по отношению к устройству, описывается параметром cmd, а параметр arg является аргументом команды.
kill
kill(pid, sig)
int pid, sig;
Функция kill посылает процессам, идентификаторы которых указаны в параметре pid, сигнал, описываемый параметром sig.
pid имеет положительное значение сигнал посылается процессу с идентификатором pid
pid = 0 сигнал посылается процессам, групповой идентификатор которых совпадает с идентификатором отправителя
pid = -1 если процесс-отправитель исполняется под идентификатором суперпользователя, сигнал посылается всем процессам, в противном случае, сигнал посылается процессам, фактический код идентификации пользователя у которых совпадает с идентификатором суперпользователя
pid ‹ -1 сигнал посылается процессам, групповой идентификатор которых совпадает с pid
Исполнительный код идентификации пользователя процесса-отправителя должен указывать на суперпользователя, в противном случае, фактический или исполнительный коды идентификации отправителя должны совпадать с соответствующими кодами процессов-получателей.
link
link(filename1, filename2)
char *filename1,*filename2;
Функция link присваивает файлу filename1 новое имя filename2. Файл становится доступным под любым из этих имен.
lseek
lseek(fildes, offset, origin)
int fildes, origin;
long offset;
Функция lseek изменяет положение указателя чтения-записи для файла с дескриптором fildes и возвращает новое значение. Положение указателя зависит от значения параметра origin:
0 установить указатель на позицию, соответствующую указанному смещению в байтах от начала файла
1 сдвинуть указатель с его текущей позиции на указанное смещение
2 установить указатель на позицию, соответствующую указанному смещению в байтах от конца файла
мknod
mknod(filename, modes, dev)
char *filename;
int mode, dev;
Функция mknod создает специальный файл, каталог или поименованный канал (очередь по принципу "первым пришел — первым вышел") в зависимости от значения параметра modes:
010000 поименованный канал
020000 специальный файл устройства ввода-вывода символами
040000 каталог
060000 специальный файл устройства ввода-вывода блоками
12 младших разрядов параметра modes имеют тот же самый смысл, что и в функции chmod. Если файл имеет специальный тип, параметр dev содержит старший и младший номера устройства.
мount
mount(specialfile, dir, rwflag)
char *specialfile, *dir;
int rwflag;
Функция mount выполняет монтирование файловой системы, на которую указывает параметр specialfile, в каталоге dir. Если младший бит параметра rwflag установлен, файловая система монтируется только для чтения.
мsgctl
#include ‹sys/types.h›
#include ‹sys/ipc.h›
#include ‹sys/msg.h›
msgctl(id, cmd, buf)
int id, cmd;
struct msgid_ds *buf;
В зависимости от операции, указанной в параметре cmd, функция msgctl дает процессам возможность устанавливать или запрашивать информацию о статусе очереди сообщений с идентификатором id, а также удалять очередь из системы. Структура msquid_ds определена следующим образом:
struct ipc_perm {
ushort uid; /* идентификатор текущего пользователя */
ushort gid; /* идентификатор текущей группы */
ushort cuid; /* идентификатор пользователя-создателя */
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии