c 외부 프로그램 호출

함수 이름: spawnl, spawnle, spawnlp, spawnlpe, spawnv, spawnve, spawnvp, spawnvpe 함수 원형: int spawnl (int mode, char * path, char * arg 0,...)  int spawnle(int mode, char *path, char *arg0, … )  int spawnlp(int mode, char *path, char *arg0, … )  int spawnlpe(int mode, char *path, char *arg0, … )  int spawnv(int mode, char *path, char *argv[])  int spawnve(int mode, char *path, char *argv[], char **env)  int spawnvp(int mode, char *path, char *argv[])  int spawnvpe (int mode, char * path, char * argv [], char * * env) 함수 기능: 한 프로그램 에서 다른 프로그램 함 수 를 호출 하여 되 돌려 줍 니 다. - 1: 호출 실패, 0: 호출 성공 매개 변수 설명: path - 호출 된 프로그램 경로, arg - 호출 된 매개 변수, mode - 호출 모드, 구체 적 으로 다음 과 같 습 니 다.  P_WAIT 0 은 하위 프로 세 스 가 실 행 될 때 까지 부모 프로 세 스 를 연결 합 니 다.  P_NOWAIT 1 부자 과정 동시 실행, Turboc 지원 하지 않 음  P_OVERLAY 2 하위 프로 세 스 가 부모 프로 세 스 소속 파일 을 덮어 씁 니 다: < process. h >
C/C++ code

    
    
    
    
#include < stdio.h > #include < stdlib.h > #include < process.h > #include < errno.h > #include < string .h > int main() { int process_id; #if defined(__OS2__)||defined(__NT__) int status, rc; #endif process_id = spawnl(P_NOWAIT, " child.exe " , " child " , " 5 " ,NULL); if (process_id ==- 1 ){ printf( " spawn failed-%s/n " ,strerror(errno)); exit(EXIT_FAILURE); } printf( " Process id=%d/n " ,process_id); #if defined(__OS2__)||defined(__NT__) rc = cwait( & status,process_id,WAIT_CHILD); if (rc ==- 1 ){ printf( " wait failed-%s/n " ,strerror(errno)); } else { printf( " wait succeeded-%x/n " ,status); switch (status & 0xff ){ case 0 : printf( " Normal termination code=%d/n " ,status >> 8 ); break ; case 1 : printf( " Hard-error abort/n " ); break ; case 2 : printf( " Trap operation/n " ); break ; case 3 : printf( " SIGTERM signal not intercepted/n " ); break ; default : printf( " Bogus return status/n " ); } } #endif printf( " spawn completed/n " ); return 0 ; } /* [child.c] #include <stdio.h> #include <stdlib.h> #include <dos.h> int main(int argc,char *argv[]) { int delay; if(argc<=1) exit(EXIT_FAILURE); delay=atoi(argv[1]); printf("I am a child going to sleep for %d seconds/n",delay); sleep(delay); printf("I am a child awakening/n"); exit(123); return 0; }
http://www.programfan.com/club/showtxt.asp?id=198953

좋은 웹페이지 즐겨찾기