The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

semop (2)
  • semop (2) ( Solaris man: Системные вызовы )
  • >> semop (2) ( FreeBSD man: Системные вызовы )
  • semop (2) ( Русские man: Системные вызовы )
  • semop (2) ( Linux man: Системные вызовы )
  • semop (3) ( POSIX man: Библиотечные вызовы )

  • BSD mandoc
     

    NAME

    
    
    semop
    
     - atomic array of operations on a semaphore set
    
     
    

    LIBRARY

    Lb libc
    
     
    

    SYNOPSIS

       #include <sys/types.h>
       #include <sys/ipc.h>
       #include <sys/sem.h>
    int semop (int semid struct sembuf *array size_t nops);
     

    DESCRIPTION

    The semop ();
    system call atomically performs the array of operations indicated by Fa array on the semaphore set indicated by Fa semid . The length of Fa array is indicated by Fa nops . Each operation is encoded in a Vt struct sembuf , which is defined as follows:
    struct sembuf {
            u_short sem_num;        /* semaphore # */
            short   sem_op;         /* semaphore operation */
            short   sem_flg;        /* operation flags */
    };
    

    For each element in Fa array , sem_op and sem_flg determine an operation to be performed on semaphore number sem_num in the set. The values SEM_UNDO and IPC_NOWAIT may be OR 'ed into the sem_flg member in order to modify the behavior of the given operation.

    The operation performed depends as follows on the value of sem_op

    For each semaphore a process has in use, the kernel maintains an ``adjust on exit'' value, as alluded to earlier. When a process exits, either voluntarily or involuntarily, the adjust on exit value for each semaphore is added to the semaphore's value. This can be used to insure that a resource is released if a process terminates unexpectedly.  

    RETURN VALUES

    Rv -std semop  

    ERRORS

    The semop ();
    system call will fail if:

    Bq Er EINVAL
    No semaphore set corresponds to Fa semid , or the process would exceed the system-defined limit for the number of per-process SEM_UNDO structures.
    Bq Er EACCES
    Permission denied due to mismatch between operation and mode of semaphore set.
    Bq Er EAGAIN
    The semaphore's value would have resulted in the process being put to sleep and IPC_NOWAIT was specified.
    Bq Er E2BIG
    Too many operations were specified. Bq Dv SEMOPM
    Bq Er EFBIG
    sem_num was not in the range of valid semaphores for the set.
    Bq Er EIDRM
    The semaphore set was removed from the system.
    Bq Er EINTR
    The semop ();
    system call was interrupted by a signal.
    Bq Er ENOSPC
    The system SEM_UNDO pool Bq Dv SEMMNU is full.
    Bq Er ERANGE
    The requested operation would cause either the semaphore's current value Bq Dv SEMVMX or its adjust on exit value Bq Dv SEMAEM to exceed the system-imposed limits.

     

    SEE ALSO

    semctl(2), semget(2), sigaction(2)  

    BUGS

    The semop ();
    system call may block waiting for memory even if IPC_NOWAIT was specified.


     

    Index

    NAME
    LIBRARY
    SYNOPSIS
    DESCRIPTION
    RETURN VALUES
    ERRORS
    SEE ALSO
    BUGS


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру