Архитектура операционной системы 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 След. >|