setpgid

Autres langues

Langue: ja

Version: 2003-01-20 (openSuse - 09/10/07)

Section: 2 (Appels système)

̾Á°

setpgid, getpgid, setpgrp, getpgrp - ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ÎÀßÄê/¼èÆÀ¤ò¹Ô¤¦

½ñ¼°

#include <unistd.h>

int setpgid(pid_t pid, pid_t pgid);
pid_t getpgid(pid_t pid);
int setpgrp(void);
pid_t getpgrp(void);

ÀâÌÀ

setpgid() ¤Ï pid ¤Ç»ØÄꤷ¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID ¤Ë pgid ¤òÀßÄꤹ¤ë¡£ pid ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤¬ pid ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ pgid ¤¬¥¼¥í¤Ê¤é¤Ð¡¢ pid ¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤¬ pgid ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£ setpgid() ¤ò¥×¥í¥»¥¹¤ò¤¢¤ë¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤«¤éÊ̤Υ°¥ë¡¼¥×¤Ø °ÜÆ°¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¾ì¹ç¤Ï(°ìÉô¤Î¥·¥§¥ë¤Ï¥Ñ¥¤¥×¥é¥¤¥ó¤òÀ¸À® ¤¹¤ë»þ¤Ë¤³¤ì¤ò¹Ô¤¦)¡¢Î¾Êý¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ÏƱ¤¸¥»¥Ã¥·¥ç¥ó¤Î °ìÉô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¾ì¹ç¤Ï pgid ¤Ï»²²Ã¤¹¤Ù¤­´û¸¤Î ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ò»ØÄꤷ¡¢¤½¤Î¥»¥Ã¥·¥ç¥ó ID ¤Ï»²²Ã¤¹¤ë¥×¥í¥»¥¹¤Î ¥»¥Ã¥·¥ç¥ó ID ¤Ë°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

getpgid() ¤Ï pid ¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID ¤òÊÖ¤¹¡£ pid ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤¬ pid ¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£

setpgrp() ¸Æ¤Ó½Ð¤·¤Ï setpgid(0,0) ¤ÈÅù²Á¤Ç¤¢¤ë¡£

ƱÍͤˡ¢ getpgrp() ¤Ï getpgid(0) ¤ËÅù¤·¤¤¡£ ³Æ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ï¥»¥Ã¥·¥ç¥ó¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ê¡¢³Æ¥×¥í¥»¥¹¤Ï ¤½¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤¬¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¥»¥Ã¥·¥ç¥ó¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¡£

¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ï¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ë»þ¤ä¡¢Ã¼Ëö(terminal)¤Ë¤è¤Ã¤Æ ÆþÎϤÎÍ×µá¤òÄ´Ää(arbitrate)¤¹¤ë»þ¤Ë»ÈÍѤµ¤ì¤ë: üËö¤ÈƱ¤¸¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤Ï¥Õ¥©¥¢¥°¥é¥ó¥É ¤È¤·¤ÆÆɤ߹þ¤ß¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¡¢¤½¤Î¾¤Î¥×¥í¥»¥¹¤¬Ã¼Ëö¤«¤éÆɤ߹þ¤ß¤ò ¹Ô¤Ê¤ª¤¦¤È¤·¤¿¾ì¹ç¡¢¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤ÆÃæÃÇ(block)¤µ¤»¤é¤ì¤ë¡£ ¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï csh(1) ¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ¡¢¥¸¥ç¥Ö¡¦¥³¥ó¥È¥í¡¼¥ë(job control)¤Î ¼ÂÁõ¤ÎºÝ¤Ë¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤òºîÀ®¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£ termios(3) ¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë TIOCGPGRP ¤È TIOCSPGRP ¥³¡¼¥ë¤ÏÀ©¸æüËö¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ò¼èÆÀ/ÀßÄꤹ¤ë¤Î¤Ë»ÈÍѤ¹¤ë¡£

¤â¤·¥»¥Ã¥·¥ç¥ó¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Æ¡¢CLOCAL ¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢ ¥Ï¥ó¥°¥¢¥Ã¥×¤¬µ¯¤­¤¿¾ì¹ç¡¢¥»¥Ã¥·¥ç¥ó¡¦¥ê¡¼¥À¡¼¤Ë SIGHUP ¤¬Á÷¤é¤ì¤ë¡£ ¥»¥Ã¥·¥ç¥ó¡¦¥ê¡¼¥À¡¼¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¤½¤ÎÀ©¸æüËö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¤Î ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ë½ê°¤¹¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹¤Ë SIGHUP ¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£

¥×¥í¥»¥¹¤Î½ªÎ»¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤¬¸É»ù¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ç¡¢ ¤â¤·¿·¤¿¤Ë¸É»ù¤Ë¤Ê¤Ã¤¿¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Î¥á¥ó¥Ð¡¼¤¬Ää»ß¤¹¤ë¤È¡¢ ¿·¤¿¤Ë¸É»ù¤Ë¤Ê¤Ã¤¿¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ÎÁ´¤Æ¤Î¥×¥í¥»¥¹¤Ë SIGHUP ¥·¥°¥Ê¥ë¤Ë ³¤±¤Æ SIGCONT ¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£

ÊÖ¤êÃÍ

setpgid() ¤È setpgrp() ¤ÏÀ®¸ù¤·¤¿¾ì¹ç¡¢¥¼¥í¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤òÊÖ¤·¡¢ errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£

getpgid() ¤ÏÀ®¸ù¤·¤¿¾ì¹ç¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤òÊÖ¤·¡¢ errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£

getpgrp() ¤Ï¾ï¤Ë¸½ºß¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤òÊÖ¤¹¡£

¥¨¥é¡¼

EACCES
¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¤¬¡¢ ¤¹¤Ç¤Ë¤½¤Î»Ò¥×¥í¥»¥¹¤Ï execve(2) ¤ò¼Â¹Ô¤·¤Æ¤¤¤¿¡£ (setpgid(), setpgrp())
EINVAL
pgid ¤¬ 0 ¤è¤ê¾®¤µ¤¤¡£ (setpgid(), setpgrp())
EPERM
¥×¥í¥»¥¹¤ò°Û¤Ê¤ë¥»¥Ã¥·¥ç¥ó¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ë°ÜÆ°¤µ¤»¤è¤¦¤È¤·¤¿¡£ ¤Þ¤¿¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤òÊѹ¹¤·¤è¤¦¤È ¤·¤¿¤¬¡¢¤½¤Î»Ò¥×¥í¥»¥¹¤ÏÊ̤Υ»¥Ã¥·¥ç¥ó¤À¤Ã¤¿¡£ ¤Þ¤¿¤Ï¥»¥Ã¥·¥ç¥ó¥ê¡¼¥À¡¼¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥× ID ¤òÊѹ¹¤·¤è¤¦¤È¤·¤¿¡£ (setpgid(), setpgrp())
ESRCH
getpgid() ¤Î¾ì¹ç: pid ¤¬¤É¤Î¥×¥í¥»¥¹¤Ë¤â°ìÃפ·¤Ê¤¤¡£ setpgid() ¤Î¾ì¹ç: pid ¤¬¥«¥ì¥ó¥È¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¯¡¢¥«¥ì¥ó¥È¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Ç¤â¤Ê¤¤¡£

½àµò

setpgid() ´Ø¿ô¤È getpgrp() ´Ø¿ô¤Ï POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ setpgrp() ´Ø¿ô¤Ï 4.2BSD ¤ËͳÍ褹¤ë¡£ getpgid() ´Ø¿ô¤Ï SVr4 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£

Ãí°Õ

fork(2) ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID ¤ò·Ñ¾µ¤¹¤ë¡£ execve(2) ¤ÎÁ°¸å¤Ç¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID ¤ÏÊݸ¤µ¤ì¤ë¡£

POSIX ¤Î setpgid() ¤Ï BSD ¤Î setpgrp() ´Ø¿ô¤«¤é¤­¤Æ¤¤¤ë¡£¤Þ¤¿ System V ¤Ë¤âƱ¤¸Ì¾Á°¤Î´Ø¿ô¤¬¤¢¤ë¤¬¡¢¤³¤ì¤Ï setsid(2) ¤ÈƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£

glibc ¤Ç¥×¥í¥È¥¿¥¤¥×¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢_XOPEN_SOURCE ¤È _XOPEN_SOURCE_EXTENDED ¤òξÊý¤È¤â ÄêµÁ¤¹¤ë¤«¡¢"#define _XOPEN_SOURCE n" ¤òÍѤ¤¤ë¡£ ¤³¤³¤Ç n ¤Ï 500 °Ê¾å¤ÎÀ°¿ô¤Ç¤¢¤ë¡£

´ØÏ¢¹àÌÜ

getuid(2), setsid(2), tcgetpgrp(3), tcsetpgrp(3), termios(3), feature_test_macros(7)