Win32 환경에서의 fork() 대체 방법

Source

  • Evernote/Technote scraps/fork() in Win32 Wireframe.md

Summary

POSIX 표준 함수인 fork()는 유닉스 계열 OS 에서 현재 프로세스를 복제하여 자식 프로세스를 생성하지만, Windows(Win32) 환경에서는 시스템 설계상 지원되지 않는다. 따라서 Windows 에서 새로운 프로세스를 생성하려면 CreateProcess API 를 사용해야 한다. CreateProcess 는 실행 파일 경로, 명령줄 인자, 보안 속성, 생성 플래그 등 상세한 파라미터를 요구하며, STARTUPINFO 와 PROCESS_INFORMATION 구조체를 초기화하여 호출한다.

Key Points

  • fork() 함수는 POSIX 표준(unistd.h)에 포함되며, 현재 프로세스의 복제본인 자식 프로세스를 생성한다.
  • Windows 는 프로세스 복제 개념을 시스템 차원에서 지원하지 않아 fork() 가 동작하지 않는다.
  • Windows 에서 프로세스 생성은 CreateProcess API 를 통해 수행한다.
  • CreateProcess 는 리눅스의 fork() 에 비해 파라미터가 복잡하며, STARTUPINFO 와 PROCESS_INFORMATION 구조체의 초기화가 필수적이다.