process.h는 스레드와 프로세스 작업에 쓰이는 함수 정의와 매크로가 포함된 C 언어의 헤더 파일이다. ANSI/ISO CPOSIX 표준에서는 헤더 파일 또는 함수가 구현되어 있지 않다. 수많은 C 컴파일러는 도스, 윈도우 3.1x, Win32, OS/2, 넷웨어, 도스 익스텐더에 적용할 자신의 라이브러리의 헤더 파일과 라이브러리 함수에 타겟이 맞춰져 있다.

역사 편집

첫 파일 참조는 1986년 10월 26일에 돌아간 Net.Micro.PC 유즈넷의 포스트에 있다.[1] 컴파일러는 마이크로소프트 C 컴파일러 3.0 버전에 사용되었다. Lattice C 컴파일러 3.30 (1988년 8월 24일)은 헤더 파일을 갖지 않고, 유사한 함수가 제공된다. 볼랜드에서는 헤더 파일이 터보 C 컴파일러 2.01 버전에서 제공된다. C 웨어-퍼스널 C 컴파일러 1.2c 버전 (6월 1989)는 ANSI 헤더 파일만을 갖는다.

멤버 함수 편집

이름 내용 적용 운영 체제
execl, execle, execlp, execlpe 부모 프로세스가 이전에 할당받은 메모리에 위치한 자식 프로세스를 로드하고 실행한다. 개별적으로 매개변수를 들어간다. DOS,Win,OS/2,POSIX
execv, execve, execvp, execvpe 부모 프로세스가 이전에 할당받은 메모리에 위치한 새 자식 프로세스를 로드하고 실행한다. 매개변수는 포인터의 배열로 들어간다. DOS,Win,OS/2,POSIX
spawnl, spawnle, spawnlp, spawnlpe 자식 프로세스를 로드하고 실행한다. 개별적으로 매개변수를 들어간다. DOS,Win,OS/2
spawnv, spawnve, spawnvp, spawnvpe 새 자식 프로세스를 로드하고 실행한다. 매개변수는 포인터의 배열로 들어간다. DOS,Win,OS/2
beginthread, beginthreadNT 현재 프로세스 동안 실행에 관한 새 스레드를 만든다. Win,OS/2
endthread beginthread로 만들어진 프로세스를 종료한다. Win,OS/2
getpid 프로세스 식별자를 반환한다. DOS,Win,OS/2
cexit 시작 코드에 의해 변경된 인터럽트 벡터를 원래대로 되돌린다. DOS,Win,OS/2

멤버 상수 편집

이름 내용 비고 운영 체제
_P_WAIT 자식 프로세스가 실행이 끝날 때까지 부모 프로세스를 차단한다. 동기 스폰. MS-DOS,Win32,OS/2
_P_NOWAIT, _P_NOWAITO 동시에 호출된 프로세스를 새 프로세스에 실행 하는 것을 계속한다. 비동기 스폰 Win32,OS/2
_P_OVERLAY 부모 프로세스가 자식 프로세스에 덮어쓰기 할 경우, 부모 프로세스를 강제 종료한다. exec* 함수와 같은 효과를 가진다. MS-DOS,Win32,OS/2
_P_DETACH 콘솔이나 키보드로 액세스하지 않고 자식이 백그라운드에서 실행된다. 새 프로세스가 실패하는 동시에 _cwait를 호출한다. 비동기 스폰. Win32,OS/2
_WAIT_CHILD cwait 동작에 사용된다. Win32에는 쓰이지 않는다. MS-DOS,OS/2
_WAIT_GRANDCHILD cwait 동작에 사용된다. Win32에는 쓰이지 않는다. MS-DOS,OS/2

구현 편집

어떤 표준도 없이 구현된 것을 감안하여 각 컴파일러의 헤더 파일에 따라 사용해야 한다. 아래는 process.h을 지원하는 컴파일러 목록이다.

차이점 편집

한편 exec*와 spawn* 매개변수의 혼합 길이가 변경될 수도 있다.

  • Delorie DJGPP : 제한을 가지지 않는다.[14]
  • 디지털 마르스 : 최댓값이 128바이트이며 '\0' 문자로 끝내야 될 필요는 없다.
  • 마이크로소프트 비주얼 C++ : 새 프로세스의 매개변수는 반드시 1024 바이트를 넘지 않아야 된다.[15]

참조 편집

  1. First reference to process.h[깨진 링크(과거 내용 찾기)], groups-beta.google.com
  2. Delorie.com
  3. DJGPP process.h, delorie.com
  4. “Openwatcom.org”. 2015년 3월 17일에 원본 문서에서 보존된 문서. 2015년 3월 17일에 확인함. 
  5. OpenWatcom clib Archived 2006년 10월 11일 - 웨이백 머신, openwatcom.org
  6. DigitalMars.com
  7. Digital Mars process.h, digitalmars.com
  8. “MinGW.org”. 2006년 8월 28일에 원본 문서에서 보존된 문서. 2011년 2월 19일에 확인함. 
  9. “MSDN.Microsoft.com”. 2007년 7월 7일에 원본 문서에서 보존된 문서. 2011년 2월 19일에 확인함. 
  10. “Borland.com”. 2012년 11월 5일에 원본 문서에서 보존된 문서. 2012년 11월 5일에 확인함. 
  11. C version 2.01[깨진 링크(과거 내용 찾기)], dn.codegear.com
  12. CS.Virginia.edu
  13. QNX.com
  14. DJGPP spawn*, delorie.com
  15. Microsoft MSDN, msdn.microsoft.com

외부 링크 편집