이 름
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가 0이 라 면 , 현 재 프 로 세 스 의 프 로 세 스 ID가 사 용 된 다 . 만 일 pgid가 0이 라 면 , pid로 지 정 된 프 로 세 스 의 프 로 세 스 ID가 사 용 된 다 . 만 일 setpgid를 프 로 세 스 그 룹 에 서 다 른 프 로 세 스 그 룹 으 로 프 로 세 스 를 옮 기 는 데 사 용 하 려 면 (파 이 프 를 만 들 때 몇 몇 쉘 이 하 는 것 처 럼 ), 두 프 로 세 스 그 룹 은 같 은 세 션 의 속 해 있 어 야 한 다 . 이 런 경 우 , pgid는 연 계 된 프 로 세 스 그 룹 을 지 정 해 야 하 며 그 그 룹 의 세 션 ID는 연 계 된 프 로 세 스 의 세 션 ID와 일 치 해 야 한 다 .
getpgid는 pid로 지 정 된 프 로 세 스 의 프 로 세 스 그 룹 ID를 리 턴 한 다 . 만 일 pid가 0이 라 면 , 현 재 프 로 세 스 의 프 로 세 스 ID가 사 용 된 다 .
리 눅 스 DLL 4.4.1 라 이 브 러 리 에 서 , setpgrp는 단 순 히 setpgid(0,0)를 호 출 한 다 .
getpgrp는 getpgid(0)와 동 일 하 다 . 각 프 로 세 스 그 룹 은 세 션 의 일 원 이 며 , 각 프 로 세 스 는 그 프 로 세 스 그 룹 이 일 원 인 세 션 의 일 원 이 다 .
프 로 세 스 그 룹 들 은 시 그 널 전 달 과 , 그 리 고 터 미 널 에 의 해 서 입 력 요 구 들 을 조 정 한 다 : 터 미 널 같 이 같 은 프 로 세 스 그 룹 의 프 로 세 스 들 은 전 경 (foreground)으 로 동 작 하 며 읽 을 것 이 다 . 그 러 는 동 안 다 른 프 로 세 스 가 읽 으 려 고 한 다 면 시 그 널 에 의 해 멈 출 것 이 다 . 이 시 스 템 콜 들 은 작 업 제 어 (job control)를 위 해 프 로 세 스 그 룹 들 을 만 드 는 csh(1) 같 은 프 로 그 램 에 의 해 사 용 된 다 . termios(4)에 서 기 술 된 TIOCGPGRP와 TIOCSPGRP는 제 어 터 미 널 의 프 로 세 스 그 룹 을 알 아 내 거 나 설 정 하 기 위 해 사 용 된 다 .
세 션 이 제 어 터 미 널 가 지 고 , CLOCAL은 설 정 되 지 않 으 며 hangup이 발 생 하 면 , 세 션 리 더 (leader)는 SIGHUP을 받 는 다 . 만 일 세 션 리 더 가 종 료 하 면 , SIGHUP 시 그 널 은 제 어 터 미 널 의 전 경 프 로 세 스 그 룹 에 있 는 모 든 프 로 세 스 에 게 보 내 진 다 .
만 일 프 로 세 스 종 료 가 어 떤 프 로 세 스 그 룹 을 고 아 로 만 든 다 면 , 그 리 고 새 롭 게 고 아 가 된 프 로 세 스 그 룹 의 어 떤 프 로 세 스 가 멈 춘 다 면 , SIGHUP 시 그 널 에 이 어 서 SIGCONT 시 그 널 이 새 롭 게 고 아 가 된 프 로 세 스 그 룹 의 모 든 프 로 세 스 에 게 보 내 진 다 .
반 환 값
성 공 시 , setpgid 와 setpgrp 는 0이 리 턴 된 다 . 에 러 시 , −1이 리 턴 되 며 , errno는 적 당 한 값 으 로 설 정 된 다 .
getpgid는 성 공 시 프 로 세 스 그 룹 이 리 턴 된 다 . 에 러 시 , −1이 리 턴 되 며 , errno는 적 당 한 값 으 로 설 정 된 다 .
getpgrp는 항 상 현 재 프 로 세 스 그 룹 이 리 턴 된 다 .
에 러
EINVAL |
pgid 가 0보 다 작 다 . |
|||
EPERM |
여 러 가 지 허 가 권 위 반 . |
|||
ESRCH |
pid가 어 떤 프 로 세 스 와 도 일 치 하 지 않 는 다 . |
호 환
SVr4, POSIX, 4.4BSD.
호 환
setpgid와 getpgrp은 POSIX.1 에 서 잘 작 동 한 다 . setpgrp은 BSD 4.2에 서 잘 작 동 한 다 . getpgid은 SVr4에 서 잘 작 동 한 다 .
관 련 항 목
getuid(2), setsid(2), tcsetpgrp(3), termios(4)
역 자
정 강 훈 <skyeyes [AT] soback.net>, 2000년 5월 2일