Annotation of cci/usr/src/man/man2/semget.2i, revision 1.1.1.2

1.1       root        1: .TH SEMGET 2
                      2: .SH NAME
                      3: semget \- get set of semaphores
                      4: .SH SYNOPSIS
                      5: .B #include <sys/types.h>
                      6: .br
                      7: .B #include <sys/ipc.h>
                      8: .br
                      9: .B #include <sys/sem.h>
                     10: .PP
                     11: .nf
                     12: .BR "int semget (key, nsems, semflg)
                     13: .B key_t key;
                     14: .B int nsems, semflg;
                     15: .fi
                     16: .SH DESCRIPTION
                     17: .I Semget
                     18: returns the semaphore identifier associated with
                     19: .IR key .
                     20: .PP
                     21: A semaphore identifier and associated data structure and set containing
                     22: .I nsems
                     23: semaphores
                     24: (see
                     25: .IR intro (2))
                     26: are created for
                     27: .I key
                     28: if one of the following are true:
                     29: .IP
                     30: .I Key
                     31: is equal to
                     32: .SM
                     33: .BR IPC_PRIVATE .
                     34: .IP
                     35: .I Key
                     36: does not already have a semaphore identifier associated with it, and
                     37: .RI ( semflg " & "
                     38: .SM
                     39: .BR IPC_CREAT\*S )
                     40: is ``true''.
                     41: .PP
                     42: Upon creation, the data structure associated with the new semaphore
                     43: identifier is initialized as follows:
                     44: .IP
                     45: .BR Sem_perm.cuid ", " sem_perm.uid ,
                     46: .BR sem_perm.cgid ", and " sem_perm.gid
                     47: are set equal to the effective user
                     48: .SM ID
                     49: and effective group
                     50: .SM ID\*S,
                     51: respectively, of the calling process.
                     52: .IP
                     53: The low-order 9 bits of
                     54: .B sem_perm.mode
                     55: are set equal to the low-order 9 bits of
                     56: .IR semflg .
                     57: .IP
                     58: .B Sem_nsems
                     59: is set equal to the value of
                     60: .IR nsems .
                     61: .IP
                     62: .B Sem_otime
                     63: is set equal to 0 and
                     64: .B sem_ctime
                     65: is set equal to the current time.
                     66: .PP
                     67: .I Semget
1.1.1.2 ! root       68: fails if one or more of the following are true:
1.1       root       69: .TP 15
                     70: \s-1[EINVAL]\s+1
                     71: .I Nsems
                     72: is either less than or equal to zero or greater than the system-imposed limit.
                     73: .TP
                     74: \s-1[EACCES]\s+1
                     75: A semaphore identifier exists for
                     76: .IR key ,
                     77: but operation permission (see
                     78: .IR intro (2))
                     79: as specified by the low-order 9 bits of
                     80: .I semflg
                     81: would not be granted. 
                     82: .TP
                     83: \s-1[EINVAL]\s+1
                     84: A semaphore identifier exists for
                     85: .IR key ,
                     86: but the number of semaphores in the set associated with it is less than
                     87: .IR nsems " and " nsems
                     88: is not equal to zero.
                     89: .TP
                     90: \s-1[ENOENT]\s+1
                     91: A semaphore identifier does not exist for
                     92: .I key
                     93: and
                     94: .RI ( semflg " &"
                     95: .SM
                     96: .BR IPC_CREAT\*S )
                     97: is ``false''.
                     98: .TP
                     99: \s-1[ENOSPC]\s+1
                    100: A semaphore identifier is to be created but
                    101: the system-imposed limit on the maximum number of
                    102: allowed semaphore identifiers system wide
                    103: would be exceeded.
                    104: .TP
                    105: \s-1[ENOSPC]\s+1
                    106: A semaphore identifier is to be created but
                    107: the system-imposed limit on the maximum number of
                    108: allowed semaphores system wide
                    109: would be exceeded.
                    110: .TP
                    111: \s-1[EEXIST]\s+1
                    112: A semaphore identifier exists for
                    113: .I key
                    114: but
                    115: .RI "((" semflg " & "
                    116: .SM
                    117: .RB IPC_CREAT\*S ") and ("
                    118: .IR semflg " & "
                    119: .SM
                    120: .BR IPC_EXCL\*S "))"
                    121: is ``true''.
                    122: .br
                    123: .if \n()s .bp
                    124: .SH "RETURN VALUE"
                    125: Upon successful completion,
                    126: a non-negative integer,
                    127: namely a semaphore identifier, is returned.
                    128: Otherwise, a value of \-1 is returned and
                    129: .I errno\^
                    130: is set to indicate the error.
                    131: .SH SEE ALSO
                    132: intro(2), semctl(2), semop(2).
                    133: .\"    @(#)semget.2    6.2 of 9/6/83

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.