Выбрать главу

00020 запись групповым пользователем

00010 исполнение групповым пользователем

00004 чтение прочим пользователем

00002 апись прочим пользователем

00001 исполнение прочим пользователем

сhown

chown(filename, owner, group)

char *filename;

int owner,group;

Функция chown меняет коды идентификации владельца и группы для указанного файла на коды, указанные в параметрах owner и group.

сhroot

chroot(filename)

char *filename;

Функция chroot изменяет частный корень вызывающего процесса в соответствии со значением параметра filename.

сlosе

close(fildes)

int fildes;

Функция close закрывает дескриптор файла, полученный в результате выполнения функций open, creat, dup, pipe или fcntl, или унаследованный от функции fork.

сreat

creat(filename, mode)

char *filename;

int mode;

Функция creat создает новый файл с указанными именем и правами доступа. Параметр mode имеет тот же смысл, что и в функции access, при этом признак sticky-bit очищен, а разряды, установленные функцией umask, сброшены. Функция возвращает дескриптор файла для последующего использования в других функциях.

duр

dup(fildes)

int fildes;

Функция dup создает копию указанного дескриптора файла, возвращая дескриптор с наименьшим номером из имеющихся в системе. Старый и новый дескрипторы используют один и тот же указатель на файл, а также и другие совпадающие атрибуты.

ехес

execve(filename, argv, envp)

char *filename;

char *argv[];

char *envp[];

Функция execve исполняет файл с именем filename, загружая его в адресное пространство текущего процесса. Параметр argv соответствует списку аргументов символьного типа, передаваемых запускаемой программе, параметр envp соответствует массиву, описывающему среду выполнения нового процесса.

ехit

exit(status)

int status;

Функция exit завершает вызывающий процесс, возвращая его родителю 8 младших разрядов из слова состояния процесса. Ядро само может вызывать эту функцию в ответ на поступление определенных сигналов.

fcntl

fcntl(fildes, cmd, arg)

int fildes, cmd, arg;

Функция fcntl обеспечивает выполнение набора разнообразных операций по отношению к открытым файлам, идентифицируемым с помощью дескриптора fildes. Параметры cmd и arg интерпретируются следующим образом (определение буквенных констант хранится в файле "/usr/include/fcntl.h"):

F_DUPFD вернуть наименьшее значение дескриптора, большее или равное значению arg

F_SETFD установить флаг "close-on-exec" в младшем разряде arg (файл будет закрыт функцией exec)

F_GETFD вернуть состояние флага "close-on-exec"

F_SETFL установить флаги, управляющие состоянием файла (O_NDELAY — не приостанавливаться в ожидании завершения ввода-вывода, O_APPEND — записываемые данные добавлять в конец файла)

F_GETFL получить значения флагов, управляющих состоянием файла

struct flock

 short l_type; /* F_RDLCK — блокировка чтения, F_WRLCK — блокировка записи, F_UNLCK — снятие блокировки */

 short l_whence; /* адрес начала блокируемого участка дается в виде смещения относительно начала файла (0), относительно текущей позиции указателя (1), относительно конца файла (2) */

 long l_start; /* смещение в байтах, интерпретируемое в соответствии со значением l_whence */

 long l_len; /* длина блокируемого участка в байтах. Если указан 0, блокируется участок от l_start до конца файла */

 long l_pid; /* идентификатор процесса, блокирующего файл */

 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 сигнал посылается процессам, групповой идентификатор которых совпадает с идентификатором отправителя