Google

$BA0(B - $B>e(B - $B - $BL\

Process

UNIX$B$N%W%m%;%9$r4IM}$9$k%b%8%e!<%k!%(B Math$B%b%8%e!<%k$HF1MM$K$3(B $B$N%b%8%e!<%k$bDj5A$5$l$F$$$k%a%=%C%I$OA4$F(B $B%b%8%e!<%k4X?t(B$B$G$9!%(B

Process$B$,%W%m%;%9$rI=8=$9$k%/%i%9$G$O$J$/!$%W%m(B $B%;%9$KBP$9$kA`:n$r$^$H$a$?%b%8%e!<%k$G$"$k$3$H$KCm0U$7$F$/$@(B $B$5$$!%(B

$B%b%8%e!<%kB0@-(B:

egid

$B

egid= gid

$B

euid

$B

euid= uid

$B

gid

$B

gid= gid

$B

pid

$B%W%m%;%9(BID$B!%JQ?t(B$$$B$NCM$HF1$8!%(B

ppid

$B?F%W%m%;%9$N%W%m%;%9(BID$B!%(BUN*X$B$G$Oppid$B$O(B1(init$B$N(Bpid)$B$K$J$j$^$9!%(B

uid

$B%W%m%;%9$N

uid= uid

$B%W%m%;%9$N

$B%b%8%e!<%k4X?t(B:

getpgrp([pid])

pid$B$N%W%m%;%9$N%W%m%;%9%0%k!<%W$rJV$7$^$9!%(B pid$B$,(B0$B$N;~$d>JN,$5$l$?;~$O%+%l%s%H%W%m%;%9$r0UL#(B $B$7$^$9!%(B

getpriority(which, who)

$B%W%m%;%9!$%W%m%;%9%0%k!<%W!$%f!<%6$N8=:_$N%W%i%$%*%j%F%#$rJV(B $B$7$^$9!%(Bgetpriority(2)$B;2>H!%(B Process$B%b%8%e!<%k$O(Bwhich$B$H$7$F;XDj$G(B $B$-$kDj?t(BPRIO_PROCESS, PRIO_PGRP, PRIO_USER$B$rDj5A$7$F$$$^$9!%(B

kill(signal, pid...)

pid$B$G;XDj$5$l$?%W%m%;%9$K%7%0%J%k$rAw$j$^$9!%(B signal$B$O%7%0%J%kHV9f$+L>A0$G;XDj$7$^$9!%Ii$NCM$r(B $B;}$D%7%0%J%k(B($B$"$k$$$O%7%0%J%kL>$NA0$K(B-)$B$rM?$($k(B $B$H%W%m%;%9$G$O$J$/%W%m%;%9%0%k!<%W$K%7%0%J%k$rAw$j$^$9!%(B

setpgrp(pid, pgrp)

pid$B$N%W%m%;%9%0%k!<%W$r@_Dj$7$^$9!%(Bpid$B$,(B 0$B$N;~$O%+%l%s%H%W%m%;%9$r0UL#$7$^$9!%(B

setpriority(which, who, prio)

$B%W%m%;%9!$%W%m%;%9%0%k!<%W!$%f!<%6$N8=:_$N%W%i%$%*%j%F%#$r@_(B $BDj$7$^$9!%(Bsetpriority(2)$B;2>H!%(B Process$B%b%8%e!<%k$O(Bwhich$B$H$7$F;XDj$G(B $B$-$kDj?t(BPRIO_PROCESS, PRIO_PGRP, PRIO_USER$B$rDj5A$7$F$$$^$9!%(B

setsid()

$B?7$7$$%;%C%7%g%s$r:n@.$7$F!$(Btty$B$r@Z$jN%$7$^$9!%%G!<%b%s$r(B $B4JC1$K:n$k$3$H$,$G$-$^$9!%%;%C%7%g%s(BID$B$rJV$7$^$9!%(B

wait

$B;R%W%m%;%9$,=*N;$9$k$N$rBT$A!$=*N;$7$?;R%W%m%;%9$N(Bpid$B$rJV$7$^$9!%(B $B;R%W%m%;%9$,0l$D$b$J$1$l$P(BErrno::ECHILD$BNc30$rH/@8$5$;$^$9!%(B

waitpid(pid, flags)

pid$B$G;XDj$5$l$kFCDj$N;R%W%m%;%9$N=*N;$rBT$A!$$=$N(B $B%W%m%;%9$,=*N;$7$?;~$K(Bpid$B$rJV$7$^$9!%;R%W%m%;%9(B $B$,B8:_$7$J$1$l$P(BErrno::ECHILD$BNc30$rH/@8$5$;$^$9!%(B $B%N%s%V%m%C%-%s%0%b!<%I$G;R%W%m%;%9$,$^$@=*N;(B $B$7$F$$$J$$;~$K$O(Bnil$B$rJV$7$^$9!%(B `waitpid(2)'$B$+(B`wait4(2)'$B$Nflags$B$O$$$D$b(Bnil$B$^(B $B$?$O(B0$B$r;XDj$9$kI,MW$,$"$j$^$9!%(B

$BDj?t(B:

PRIO_PROCESS

getpriority$B$^$?$O(Bsetpriority$B$N%W%m(B $B%;%9%W%i%$%*%j%F%#;XDj!%(B

PRIO_PGRP

$B%W%m%;%9%0%k!<%W%W%i%$%*%j%F%#!%(B

PRIO_USER

$B%f!<%6%W%i%$%*%j%F%#!%(B

WNOHANG

$B=*N;$7$?;R%W%m%;%9$,$J$$;~D>$A$K=*N;$7$^$9!%(B

WUNTRACED

$B%9%F!<%?%9$rJs9p$7$F$$$J$$;R%W%m%;%9$,$"$k;~$K$O=*N;$7$^$9!%(B


$BA0(B - $B>e(B - $BL\

matz@netlab.co.jp