
pclose 함수는 프로세스 ID를 받아서 해당 프로세스를 닫아주는 역할을 합니다. 프로세스 ID를 얻는 방법은 다음과 같습니다.
1. fork 함수를 사용하여 프로세스를 생성합니다. fork 함수는 부모 프로세스와 자식 프로세스를 생성합니다. 자식 프로세스의 프로세스 ID는 pid_t 변수에 저장됩니다.
2. exec 함수를 사용하여 프로세스에 명령어를 실행합니다. exec 함수는 프로세스에 명령어를 실행하고, 프로세스 ID를 반환합니다.
예를 들어, 다음과 같이 프로세스를 생성하고 프로세스 ID를 얻을 수 있습니다.
#hostingforum.kr
c
#include
#include
#include
#include
#include
int main() {
pid_t pid;
// fork 함수를 사용하여 프로세스를 생성합니다.
pid = fork();
if (pid == 0) {
// 자식 프로세스
execl("/bin/ls", "ls", NULL);
} else if (pid > 0) {
// 부모 프로세스
printf("자식 프로세스 ID: %dn", pid);
} else {
// fork 함수 호출 실패
perror("fork");
exit(1);
}
return 0;
}
pclose 함수를 사용할 때는 프로세스를 닫기 전에 waitpid 함수를 호출해야 합니다. waitpid 함수는 프로세스 ID를 받아서 프로세스를 기다립니다. pclose 함수만 호출하면 프로세스가 닫히지 않습니다.
예를 들어, 다음과 같이 pclose 함수를 사용할 수 있습니다.
#hostingforum.kr
c
#include
#include
#include
#include
#include
int main() {
pid_t pid;
// fork 함수를 사용하여 프로세스를 생성합니다.
pid = fork();
if (pid == 0) {
// 자식 프로세스
execl("/bin/ls", "ls", NULL);
} else if (pid > 0) {
// 부모 프로세스
printf("자식 프로세스 ID: %dn", pid);
// waitpid 함수를 호출하여 프로세스를 기다립니다.
waitpid(pid, NULL, 0);
// pclose 함수를 호출하여 프로세스를 닫습니다.
pclose(NULL);
} else {
// fork 함수 호출 실패
perror("fork");
exit(1);
}
return 0;
}
위 예제에서 waitpid 함수를 호출하여 프로세스를 기다린 후 pclose 함수를 호출하여 프로세스를 닫습니다.
2025-03-31 05:28