Movatterモバイル変換


[0]ホーム

URL:


Skip Navigation Links
Exit Print View
Link to oracle.comman pages section 2: System Calls    Oracle Solaris 11 Information Library
Oracle Technology Network
Library
PDF
Print View
Feedback
search filter icon
search icon
 Search Scope:

Document Information

Preface

Introduction

System Calls

access(2)

acct(2)

acl(2)

adjtime(2)

alarm(2)

brk(2)

chdir(2)

chmod(2)

chown(2)

chroot(2)

close(2)

creat(2)

dup(2)

exec(2)

execl(2)

execle(2)

execlp(2)

execv(2)

execve(2)

execvex(2)

execvp(2)

_Exit(2)

_exit(2)

exit(2)

faccessat(2)

facl(2)

fchdir(2)

fchmod(2)

fchmodat(2)

fchown(2)

fchownat(2)

fchroot(2)

fcntl(2)

fexecve(2)

fgetlabel(2)

fork1(2)

fork(2)

forkall(2)

forkallx(2)

forkx(2)

fpathconf(2)

fstat(2)

fstatat(2)

fstatvfs(2)

futimens(2)

futimesat(2)

getacct(2)

getcontext(2)

getdents(2)

getegid(2)

geteuid(2)

getgid(2)

getgroups(2)

getisax(2)

getitimer(2)

getlabel(2)

getmsg(2)

getpflags(2)

getpgid(2)

getpgrp(2)

getpid(2)

getpmsg(2)

getppid(2)

getppriv(2)

getprojid(2)

getrctl(2)

getrlimit(2)

getsid(2)

gettaskid(2)

getuid(2)

getustack(2)

ioctl(2)

issetugid(2)

kill(2)

lchown(2)

link(2)

linkat(2)

llseek(2)

lseek(2)

lstat(2)

_lwp_cond_broadcast(2)

_lwp_cond_reltimedwait(2)

_lwp_cond_signal(2)

_lwp_cond_timedwait(2)

_lwp_cond_wait(2)

_lwp_continue(2)

_lwp_info(2)

_lwp_kill(2)

_lwp_mutex_lock(2)

_lwp_mutex_trylock(2)

_lwp_mutex_unlock(2)

_lwp_self(2)

_lwp_sema_init(2)

_lwp_sema_post(2)

_lwp_sema_trywait(2)

_lwp_sema_wait(2)

_lwp_suspend(2)

memcntl(2)

meminfo(2)

mincore(2)

mkdir(2)

mkdirat(2)

mknod(2)

mknodat(2)

mmap(2)

mmapobj(2)

mount(2)

mprotect(2)

msgctl(2)

msgget(2)

msgids(2)

msgrcv(2)

msgsnap(2)

msgsnd(2)

munmap(2)

nice(2)

ntp_adjtime(2)

ntp_gettime(2)

open(2)

openat(2)

pathconf(2)

pause(2)

pcsample(2)

pipe(2)

poll(2)

p_online(2)

ppoll(2)

pread(2)

priocntl(2)

priocntlset(2)

processor_bind(2)

processor_info(2)

profil(2)

pset_assign(2)

pset_bind(2)

pset_create(2)

pset_destroy(2)

pset_getattr(2)

pset_info(2)

pset_list(2)

pset_setattr(2)

putacct(2)

putmsg(2)

putpmsg(2)

pwrite(2)

read(2)

readlink(2)

readlinkat(2)

readv(2)

rename(2)

renameat(2)

resolvepath(2)

rmdir(2)

sbrk(2)

semctl(2)

semget(2)

semids(2)

semop(2)

semtimedop(2)

setcontext(2)

setegid(2)

seteuid(2)

setgid(2)

setgroups(2)

setitimer(2)

setpflags(2)

setpgid(2)

setpgrp(2)

setppriv(2)

setrctl(2)

setregid(2)

setreuid(2)

setrlimit(2)

setsid(2)

settaskid(2)

setuid(2)

setustack(2)

shmadv(2)

shmat(2)

shmctl(2)

shmdt(2)

shmget(2)

shmids(2)

shmop(2)

sigaction(2)

sigaltstack(2)

sigpending(2)

sigprocmask(2)

sigsend(2)

sigsendset(2)

sigsuspend(2)

sigwait(2)

__sparc_utrap_install(2)

stat(2)

statvfs(2)

stime(2)

swapctl(2)

symlink(2)

symlinkat(2)

sync(2)

sysfs(2)

sysinfo(2)

time(2)

times(2)

uadmin(2)

ulimit(2)

umask(2)

umount(2)

umount2(2)

uname(2)

unlink(2)

unlinkat(2)

ustat(2)

utime(2)

utimensat(2)

utimes(2)

uucopy(2)

vfork(2)

vforkx(2)

vhangup(2)

waitid(2)

wracct(2)

write(2)

writev(2)

yield(2)

semctl

- semaphore control operations

Synopsis

#include <sys/types.h>#include <sys/ipc.h>#include <sys/sem.h>intsemctl(intsemid,intsemnum,intcmd...);

Description

Thesemctl() function provides a variety of semaphore control operations as specifiedbycmd. The fourth argument is optional, depending upon the operation requested. If required, it is of typeunion semun, which mustbe explicitly declared by the application program.

union semun {        int             val;        struct semid_ds *buf;        ushort_t        *array;} arg ;

The permission required for a semaphore operation is given as {token}, wheretoken is the type of permission needed. The types of permissionare interpreted as follows:

00400    READ by user00200    ALTER by user00040    READ by group00020    ALTER by group00004    READ by others00002    ALTER by others

See theSemaphore Operation Permissions subsection of theDEFINITIONS section ofIntro(2) for moreinformation. The following semaphore operations as specified bycmd are executed with respectto the semaphore specified bysemid andsemnum.

GETVAL

Return the value of semval (seeIntro(2)). {READ}

SETVAL

Set the value ofsemval toarg.val. {ALTER} When this command is successfully executed, thesemadj value corresponding to the specified semaphore in all processes is cleared.

GETPID

Return the value of(int) sempid. {READ}

GETNCNT

Return the value ofsemncnt. {READ}

GETZCNT

Return the value ofsemzcnt. {READ}

The following operations return and set, respectively, everysemval in the setof semaphores.

GETALL

Placesemvals into array pointed to byarg.array. {READ}

SETALL

Setsemvals according to the array pointed to byarg.array. {ALTER}. When this cmd is successfully executed, thesemadj values corresponding to each specified semaphore in all processes are cleared.

The following operations are also available.

IPC_STAT

Place the current value of each member of the data structure associated withsemid into the structure pointed to byarg.buf. The contents of this structure are defined inIntro(2). {READ}

IPC_SET

Set the value of the following members of the data structure associated withsemid to the corresponding value found in the structure pointed to byarg.buf:

sem_perm.uidsem_perm.gidsem_perm.mode    /* access permission bits only */

This command can be executed only by a process that has either the {PRIV_IPC_OWNER} privilege or an effective user ID equal to the value ofmsg_perm.cuid ormsg_perm.uid in the data structure associated withmsqid. Only a process with the {PRIV_SYS_IPC_CONFIG} privilege can raise the value ofmsg_qbytes.

IPC_RMID

Remove the semaphore identifier specified bysemid from the system and destroy the set of semaphores and data structure associated with it. This command can be executed only by a process that has the {PRIV_IPC_OWNER} privilege or an effective user ID equal to the value ofsem_perm.cuid orsem_perm.uid in the data structure associated withsemid.

Return Values

Upon successful completion, the value returned depends oncmd as follows:

GETVAL

the value ofsemval

GETPID

the value of(int) sempid

GETNCNT

the value ofsemncnt

GETZCNT

the value ofsemzcnt

All other successful completions return0; otherwise,-1 is returned anderrno is set to indicate the error.

Errors

Thesemctl() function will fail if:

EACCES

Operation permission is denied to the calling process (seeIntro(2)).

EFAULT

The source or target is not a valid address in the user process.

EINVAL

Thesemid argument is not a valid semaphore identifier; thesemnum argument is less than 0 or greater thansem_nsems -1; or thecmd argument is not a valid command or isIPC_SET andsem_perm.uid orsem_perm.gid is not valid.

EPERM

Thecmd argument is equal toIPC_RMID orIPC_SET, the effective user ID of the calling process is not equal to the value ofsem_perm.cuid orsem_perm.uid in the data structure associated withsemid, and {PRIV_IPC_OWNER} is not asserted in the effective set of the calling process.

EOVERFLOW

Thecmd argument isIPC_STAT anduid orgid is too large to be stored in the structure pointed to byarg.buf.

ERANGE

Thecmd argument isSETVAL orSETALL and the value to whichsemval is to be set is greater than the system imposed maximum.

Attributes

Seeattributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
Standard

See Also

ipcs(1),Intro(2),semget(2),semop(2),attributes(5),privileges(5),standards(5)

Copyright © 2011, Oracle and/or its affiliates. All rights reserved.Legal Notices
PreviousNext

[8]ページ先頭

©2009-2025 Movatter.jp