
pclose 함수는 프로세스의 출력 스트림을 닫는 함수입니다. 프로세스를 종료하는 함수는 fork와 exec로 생성한 프로세스를 종료하는 함수인 _exit, exit, _Exit, abort입니다.
pclose 함수를 사용하여 프로세스를 종료한 후, 리소스를 해제하는 방법은 없습니다. pclose 함수는 프로세스의 출력 스트림만 닫는 것이므로, 프로세스의 메모리와 파일 리소스는 운영체제가 자동으로 해제합니다.
만약 프로세스를 종료하고 리소스를 해제하고 싶다면, fork와 exec로 생성한 프로세스를 종료하는 함수인 _exit, exit, _Exit, abort을 사용해야 합니다.
예를 들어, fork와 exec로 생성한 프로세스를 종료하고 리소스를 해제하는 예제는 다음과 같습니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
pid_t pid;
pid = fork();
if (pid == 0) {
// 자식 프로세스
execl("/bin/ls", "ls", NULL);
} else if (pid > 0) {
// 부모 프로세스
wait(NULL); // 자식 프로세스를 기다린 후 종료
_exit(0); // 부모 프로세스를 종료
} else {
// fork 실패
perror("fork");
exit(1);
}
return 0;
}
위 예제에서 wait 함수를 사용하여 자식 프로세스를 기다린 후, _exit 함수를 사용하여 부모 프로세스를 종료합니다. 이로 인해 자식 프로세스의 메모리와 파일 리소스가 운영체제에 의해 자동으로 해제됩니다.
2025-08-06 16:09