
posix_getpgid 함수는 프로세스 그룹 ID를 반환합니다.
해당 프로세스의 부모 프로세스 ID가 아니라, 프로세스 그룹 ID를 반환합니다.
posix_getpgid 함수를 사용하려면, 해당 프로세스가 프로세스 그룹의 리더여야 합니다.
프로세스 그룹의 리더가 되려면, 프로세스를 fork() 시스템 호출로 생성한 후, 프로세스 그룹 ID를 설정한 후, 프로세스를 리더로 설정해야 합니다.
예를 들어, 다음과 같은 코드를 작성할 수 있습니다.
#hostingforum.kr
c
#include
#include
#include
#include
int main() {
pid_t pid;
pid_t pgid;
// 프로세스를 fork() 시스템 호출로 생성합니다.
pid = fork();
// 프로세스가 fork() 시스템 호출로 생성된 경우
if (pid == 0) {
// 프로세스 그룹 ID를 설정합니다.
setpgid(0, 0);
// 프로세스가 프로세스 그룹의 리더가 되는 경우
if (getpgid(0) == getpgrp()) {
// posix_getpgid 함수를 사용하여 프로세스 그룹 ID를 얻어냅니다.
pgid = posix_getpgid(0);
printf("프로세스 그룹 ID : %dn", pgid);
}
}
// 프로세스가 fork() 시스템 호출로 생성되지 않은 경우
else {
// wait() 시스템 호출을 사용하여 자식 프로세스를 기다립니다.
wait(NULL);
}
return 0;
}
위의 코드를 실행하면, 자식 프로세스가 프로세스 그룹의 리더가 되고, posix_getpgid 함수를 사용하여 프로세스 그룹 ID를 얻어낼 수 있습니다.
2025-04-11 07:18