ИМЯ shmat, shmdt - операции с общей памятью System V
ОБЗОР #include <sys/types.h> #include <sys/shm.h>
void *shmat(int shmid, const void *shmaddr, int shmflg);
int shmdt(const void *shmaddr);
ОПИСАНИЕ shmat() Вызов shmat() подключает сегмент общей памяти System V с идентификатором shmid к адресному пространству вызывающего процесса. Адрес подключения, указанный в shmaddr, учитывается следующим образом:
* Если значение shmaddr равно NULL, то система выбирает подходящий (неиспользуемый) выровненный по странице адрес для подключения сегмента.
* Если значение shmaddr не равно NULL, а в shmflg указан флаг SHM_RND, то подключение производится по адресу shmaddr, округлённому до ближайшего значения кратного SHMLBA.
* В противном случае shmaddr должно быть выровнено по
...
Читать дальше »
|
ИМЯ shmctl - управление общей памятью System V
ОБЗОР #include <sys/ipc.h> #include <sys/shm.h>
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
ОПИСАНИЕ Вызов shmctl() выполняет управляющую операцию, указанную в cmd, над общим сегментом памяти System V, чей идентификатор задан в shmid.
В аргументе buf содержится указатель на структуру shmid_ds, определённую в <sys/shm.h> следующим образом:
struct shmid_ds { struct ipc_perm shm_perm; /* владелец и права */ size_t shm_segsz; /* размер сегмента (байты) */ time_t shm_atime; /* время последнего подключения */ time_t shm_dtime; /* время последнего отключения */ time_t shm_ctime; /* время последнего изменения */ pid_t shm_cpid; /* PID создателя */ pid_t shm_lpid; /* PID последнего выполнявшего shmat(
...
Читать дальше »
|
ИМЯ shmat, shmdt - операции с общей памятью System V
ОБЗОР #include <sys/types.h> #include <sys/shm.h>
void *shmat(int shmid, const void *shmaddr, int shmflg);
int shmdt(const void *shmaddr);
ОПИСАНИЕ shmat() Вызов shmat() подключает сегмент общей памяти System V с идентификатором shmid к адресному пространству вызывающего процесса. Адрес подключения, указанный в shmaddr, учитывается следующим образом:
* Если значение shmaddr равно NULL, то система выбирает подходящий (неиспользуемый) выровненный по странице адрес для подключения сегмента.
* Если значение shmaddr не равно NULL, а в shmflg указан флаг SHM_RND, то подключение производится по адресу shmaddr, округлённому до ближайшего значения кратного SHMLBA.
* В противном случае shmaddr должно быть выровнено по
...
Читать дальше »
|
ИМЯ sgetmask, ssetmask - работа с маской сигналов (устарел)
ОБЗОР long sgetmask(void);
long ssetmask(long newmask);
Замечание: В glibc нет обёрточных функций для этих системных вызовов; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Данные системные вызовы устарели. Используйте вместо них sigprocmask(2).
Вызов sgetmask() возвращает маску сигналов вызывающего процесса.
Вызов ssetmask() устанавливает маску сигналов вызывающего процесса равной значению, указанному в newmask. Возвращается предыдущее значение маски сигналов.
Маски сигналов обрабатываются этими системными вызовами как простые битовые маски (в отличие от sigset_t, который используется в sigprocmask(2)); для создания и проверки масок используйте sigmask(3).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ Вызов sge
...
Читать дальше »
|
ИМЯ setxattr, lsetxattr, fsetxattr - устанавливает расширенное значение атрибутов
ОБЗОР #include <sys/types.h> #include <sys/xattr.h>
int setxattr(const char *path, const char *name, const void *value, size_t size, int flags); int lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); int fsetxattr(int fd, const char *name, const void *value, size_t size, int flags);
ОПИСАНИЕ Расширенные атрибуты представляют собой пару имя:значение и связываются с записями inode (файлы, каталоги, символьные ссылки и т.п.). Они являются расширениями к обычным атрибутам, связанным со всеми записями inode в системе (например, данные stat(2)). Полное описание модели расширенных атрибутов можно найти в xattr(7).
Вызов setxattr() устанавливает зн
...
Читать дальше »
|
ИМЯ setup - настраивает устройства и файловые системы, монтирует корневую файловую систему
ОБЗОР #include <unistd.h>
int setup(void);
ОПИСАНИЕ setup() вызывается один раз из linux/init/main.c. Она вызывает функции инициализации устройств и файловых систем, встроенных в ядро, и затем монтирует корневую файловую систему.
Ни один из пользовательских процессов не может вызвать setup(). Любой пользовательский процесс даже с правами суперпользователя будет получать сообщение об ошибке с кодом EPERM.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ Вызов setup() всегда возвращает пользовательскому процессу значение -1.
ОШИБКИ EPERM Всегда для пользовательского процесса.
ВЕРСИИ Начиная с Linux 2.1.121, эта функция не существует.
<
...
Читать дальше »
|
ИМЯ setuid - устанавливает идентификатор пользователя
ОБЗОР #include <sys/types.h> #include <unistd.h>
int setuid(uid_t uid);
ОПИСАНИЕ Вызов setuid() устанавливает эффективный идентификатор пользователя вызвавшего процесса. Если вызывающий процесс имеет права (мандат CAP_SETUID в своём пространстве имён пользователя), то также устанавливаются действительный и сохраненный идентификаторы пользователя.
В Linux setuid() реализован как и в стандарте POSIX с возможностью _POSIX_SAVED_IDS. Это позволяет setuid-программам (не setuid-root) сбрасывать все привилегии, делать непривилегированную работу, а затем безопасным путём возвращать себе исходный эффективный идентификатор пользователя.
Если пользователь root или программа установлена как setuid root, при работе требуется осо
...
Читать дальше »
| « 1 2 ... 4 5 6 7 8 ... 59 60 » |