process.h

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

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
  5. OpenWatcom clib, openwatcom.org
  6. DigitalMars.com
  7. Digital Mars process.h, digitalmars.com
  8. MinGW.org
  9. MSDN.Microsoft.com
  10. Borland.com
  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

바깥 고리[편집]