Архитектура операционной системы UNIX   ::   Бах Морис Дж.

Страница: 705 из 715

Если вызывающий процесс исполняется под управлением суперпользователя, функция сбрасывает значения указанных кодов. В противном случае, если фактический код идентификации пользователя имеет значение, равное значению uid, функция setuid делает равным этому значению и исполнительный код идентификации пользователя. То же самое происходит, если значению uid равен код, сохраненный после выполнения setuid-программы, запускаемой с помощью функции exec. Функция setgid имеет тот же смысл по отношению к аналогичным групповым кодам.

shmctl

#include ‹sys/types.h›

#include ‹sys/ipc.h›

#include ‹sys/shm.h›

shmctl(id, cmd, buf)

int id, cmd;

struct shmid_ds *buf;

Функция shmctl выполняет различные операции над областью разделяемой памяти, ассоциированной с идентификатором id. Структура shmid_ds определена следующим образом:

struct shmid_ds {

  struct ipc_perm shm_perm; /* структура, описывающая права доступа */

  int shm_segsz; /* размер сегмента */

  int * pad1; /* используется системой */

  ushort shm_lpid; /* идентификатор процесса, связанного с последней операцией над областью */

  ushort shm_cpid; /* идентификатор процесса-создателя */

  ushort shm_nattch; /* количество присоединений к процессам */

  short pad2; /* используется системой */

  time_t shm_atime; /* время последнего присоединения */

  time_t shm_dtime; /* время последнего отсоединения */

  time_t shm_ctime; /* время последнего внесения изменений */

};

Операции:

IPC_STAT прочитать в буфер buf содержимое заголовка области, ассоциированной с идентификатором id

IPC_SET установить значения переменных shm_p

|< Пред. 703 704 705 706 707 След. >|

Java книги

Контакты: [email protected]