2026-01-24

왜 “새로 만들기”가 아니라 “복제(fork)”인가?

핵심 이유: 설정을 자동으로 물려받기 위해

쉘(터미널)이 가진 것들:

  • 현재 작업 디렉토리
  • 환경 변수 (PATH, HOME 등)
  • 열린 파일들 (표준 입출력)
  • 권한/사용자 정보

→ fork()하면 이 모든 설정이 자동 상속됨!

fork+exec 분리의 강점

fork() → [중간에 설정 변경 가능!] → exec()

예: ls > output.txt

  1. fork() → 복제 생성
  2. 복제: 출력을 파일로 변경 (exec 전이라 가능!)
  3. exec(“ls”) → ls는 그냥 출력만 하면 됨

만약 create_process() 방식이었다면?

  • 환경변수, 작업 디렉토리, 리다이렉션 등 매번 명시적 설정 필요
  • API가 복잡해지고 유연성 감소

정리

함수 역할
fork() 나 자신을 복사 (설정 상속)
exec() 다른 프로그램으로 변신

설계 철학: “간결한 API + 조합의 자유”

results matching ""

    No results matching ""