음 윈도우는 fork() 를 제공하지 않는다는 것을 알았다. 인터넷을 뒤져서 CreateProcess라는 비슷한 함수를 제공하고 있다는 것을 알았다.
그런데, 문서를 읽어보니 프로세스를 복사해서 분기시키는 fork()의 개념이 아닌 새로운 프로세스 이미지를 생성하는 execl()과 오히려 비슷하다는 느낌을 받게 되었다.
실행시킬 모듈의 이름으로 윈도우즈기반의 애플리케이션 이름을 의미한다. 여기에서 execl()과 비슷한 일을 함수라는 걸 직감할 수 있다. 그렇다고 execl()과 동일하다고 볼 수도 없다. execl()의 경우 프로세스의 이미지를 덮어써 버리는데, CreateProcess는 독립적인 새로운 프로세스를 생성시킨다. 그런점에서 fork & execl의 조합과 비슷하다고 봐야 할 것 같다.
lpCommandLine
실행시킬 애플리케이션에 넘길 명령행 인자를 명시하기 위해서 사용한다. 예를들어 C:\Myapp.exe를 Parm1, Parm2 명령행 인자와 함께 실행시키기 위한 방법이다.
윈도우즈 환경에서의 멀티 프로세스 프로그래밍
예제
관련 글
Recent Posts
Archive Posts
Tags