mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

SEMGET(2)                                             SEMGET(2)

НАЗВАНИЕ 
        semget - получение идентификатора множества семафоров

СИНТАКСИС 
        #include 
        #include 
        #include 
        
        int semget (key, nsems, semflg)
        key_t key;
        int nsems, semflg;

ОПИСАНИЕ 
        Системный  вызов  semget  возвращает идентификатор мно-
        жества семафоров, ассоциированный с ключом key.

        Идентификатор и ассоциированные с ним структура  данных
        и множество из nsems семафоров [см. intro(2)] создаются
        для ключа key в следующих случаях:

        1.   Значение аргумента key равно IPC_PRIVATE.

        2.   Ключ key еще не имеет ассоциированного с ним иден-
             тификатора множества семафоров и выражение (semflg
             & IPC_CREAT) истинно.

        При создании структуры данных, ассоциированной с  новым
        идентификатором множества семафоров, выполняются следу-
        ющие инициализирующие действия:

        1.   Значения   полей   sem_perm.cuid,    sem_perm.uid,
             sem_perm.cgid и sem_perm.gid устанавливаются  рав-
             ными действующему идентификатору  пользователя  и,
             соответственно, действующему идентификатору группы
             вызывающего процесса.

        2.   Младшие  9  бит поля sem_perm.mode устанавливаются
             равными 9 младшим битам аргумента semflg.

        3.   Значение  поля  sem_nsems  устанавливается  равным
             значению аргумента nsems.

        4.   Значение поля sem_otime устанавливается равным 0 и
             значение поля sem_ctime устанавливается равным те-
             кущему времени.

        Системный вызов semget завершается неудачей,  если  вы-
        полнено хотя бы одно из следующих условий:

        [EINVAL]    Значение  аргумента  nsems меньше или равно
                    0, или  больше  максимально  допустимого  в
                    системе.

        [EACCES]    Для ключа key уже существует  идентификатор
                    множества семафоров, но не могут быть  пре-
                    доставлены права  доступа  [см.  intro(2)],
                    определенные в 9  младших  битах  аргумента
                    semflg.

        [EINVAL]    Для ключа key уже существует  идентификатор
                    множества семафоров, но количество  семафо-
                    ров в ассоциированном множестве меньше зна-
                    чения nsems и значение nsems не равно 0.

        [ENOENT]    Для ключа key не  существует  идентификатор
                    множества семафоров и выражение  (semflg  &
                    IPC_CREAT) ложно.

        [ENOSPC]    Идентификатор  множества  семафоров  должен
                    быть создан, но тогда будет превышено  мак-
                    симально допустимое количество  идентифика-
                    торов в системе.

        [ENOSPC]    Идентификатор  множества  семафоров  должен
                    быть создан, но тогда будет превышено  мак-
                    симально допустимое количество семафоров  в
                    системе.

        [EEXIST]    Для ключа key уже существует  идентификатор
                    множества семафоров и выражение ((semflg  &
                    IPC_CREAT) & (semflg & IPC_EXCL)) истинно.

СМ. ТАКЖЕ 
        intro(2), semctl(2), semop(2).

ДИАГНОСТИКА 
        При успешном завершении системного вызова  возвращается
        неотрицательное целое число -  идентификатор  множества
        семафоров. В случае ошибки возвращается -1, а  перемен-
        ной errno присваивается код ошибки.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк