14.2. Функция shmget

14.2. Функция shmget

С помощью функции shmget можно создать новый сегмент разделяемой памяти или подключиться к существующему:

#include <sys/shm.h>

int shmget(key_t key, size_t size, int oflag);

/* Возвращает идентификатор разделяемой памяти в случае успешного завершения. –1 –в случае ошибки */

Возвращаемое целочисленное значение называется идентификатором разделяемой памяти. Он используется с тремя другими функциями shmXXX.

Аргумент key может содержать значение, возвращаемое функцией ftok, или константу IPC_PRIVATE, как обсуждалось в разделе 3.2.

Аргумент size указывает размер сегмента в байтах. При создании нового сегмента разделяемой памяти нужно указать ненулевой размер. Если производится обращение к существующему сегменту, аргумент size должен быть нулевым.

Флаг oflag представляет собой комбинацию флагов доступа на чтение и запись из табл. 3.3. К ним могут быть добавлены с помощью логического сложения флаги IPC_CREAT или IPC_CREAT | IPC_EXCL, как уже говорилось в связи с рис. 3.2.

Новый сегмент инициализируется нулями.

Обратите внимание, что функция shmget создает или открывает сегмент разделяемой памяти, но не дает вызвавшему процессу доступа к нему. Для подключения сегмента памяти предназначена функция shmat, описанная в следующем разделе.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Функция SUM

Из книги Обработка баз данных на Visual Basic®.NET автора Мак-Манус Джеффри П

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


Функция uni()

Из книги Fiction Book Designer Краткое руководство автора Автор неизвестен

Функция uni() Поиск/замена символа по его юникодному номеру также может быть сделана при помощи функции uni().Пример функции uni(): Boouni(107,32)Designer найдет слово Book


Функция uni()

Из книги Fiction Book Designer 3.2. Краткое руководство автора Izekbis

Функция uni() Поиск/замена символа по его юникодному номеру также может быть сделана при помощи функции uni().Пример функции uni(): Boouni(107,32)Designer найдет слово Book


Функция pthread_rwlock_trywrlock

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

Функция pthread_rwlock_trywrlock Неблокируемая функция pthread_rwlock_trywrlock показана в листинге 8.7.11-14 Если значение счетчика rw_refcount отлично от нуля, блокировка в данный момент уже установлена считывающим или записывающим процессом (это безразлично) и мы возвращаем ошибку с кодом EBUSY. В


Функция pthread_rwlock_unlock

Из книги Технология XSLT автора Валиков Алексей Николаевич

Функция pthread_rwlock_unlock Последняя функция, pthread_rwlock_unlock, приведена в листинге 8.8.Листинг 8.8. Функция pthread_rwlock_unlock: разблокирование ресурса//my_rwlock/pthread_rwlock_unlock.c1  #include "unpipc.h"2  #include "pthread_rwlock.h"3  int4  pthread_rwlock_unlock(pthread_rwlock_t *rw)5  {6   int result;7   if (rw->rw_magic != RW_MAGIC)8    return(EINVAL);9   if ((result =


Функция sem_open

Из книги PGP: Кодирование и шифрование информации с открытым ключом. автора Левин Максим

Функция sem_open В листинге 10.22 приведен текст функции sem_open, которая создает новый семафор или открывает существующий.Листинг 10.22. Функция sem_open//my_pxsem_fifo/sem_open.с1  #include "unpipc.h"2  #include "semaphore.h"3  #include <stdarg.h> /* для произвольного списка аргументов */4  mysem_t *5  mysem_open(const char *pathname, int


Функция sem_close

Из книги Fiction Book Designer 3.2. Руководство по созданию книг автора

Функция sem_close Текст функции sem_close приведен в листинге 10.23.11-15 Мы закрываем оба дескриптора и освобождаем память, выделенную под тип sem_t.Листинг 10.23. Функция sem_close//my_pxsem_fifo/sem_close.с1  #include "unpipc.h"2  #include "semaphore.h"3  int4  mysem_close(mysem_t *sem)5  {6   if (sem->sem_magic != SEM_MAGIC) {7    errno =


Программа shmget

Из книги Введение в криптографию автора Циммерманн Филипп


Хэш-функция.

Из книги автора

Хэш-функция. Еще одно важное преимущество использования PGP состоит в том, что PGP применяет так называемую «хэш-функцию», которая действует таким образом, что в том случае какого-либо изменения информации, пусть даже на один бит, результат «хэш-функции» будет совершенно


Функция uni()

Из книги автора

Функция uni() Поиск/замена символа по его юникодному номеру также может быть сделана при помощи функции uni().Пример функции uni(): Boouni(107,32)Designer найдет слово Book


Хэш-функция

Из книги автора

Хэш-функция Однако описанная выше схема имеет ряд существенных недостатков. Она крайне медлительна и производит слишком большой объём данных — по меньшей мере вдвое больше объёма исходной информации. Улучшением такой схемы становится введение в процесс преобразования