Develop				
			
										2003.04.23 10:55				
				[linux] 프로세스 관련 시스템콜
																																			조회 수 9344										댓글 0									
				
							system ( ) 함수: 쉘 명령어를 실행시킨다.
예제: system.c
     1  #include <stdlib.h>
     2
     3  main() {
     4      system("/usr/bin/ls  -l");
     5  }
#35 hyundai1:/export/home0/oracle/sql/sql00/c% a.out
총 14
-rwxr-xr-x   1 sql00    sql         5444 11월  6일  20:00 a.out
-rw-r--r--   1 sql00    sql           60 11월  6일  20:00 system.c
--------------------------------------------------------------------------------
execl ( ) 함수: 프로그램을 실행시킨다.
예제: execl.c
     1  main() {
     2      int pid;
     3      int status;
     4
     5      pid = fork();
     6      if(pid > 0) {
     7          wait(&status);
     8      } else if(pid == 0) {
     9          execl("/usr/bin/ls", "ls", "-l", 0);
    10      } else {
    11          printf("fork error.n");
    12      }
    13  }
#97 hyundai1:/export/home0/oracle/sql/sql00/c% a.out
총 26
-rwxr-xr-x   1 sql00    sql         5736 11월  6일  21:11 a.out
-rw-r--r--   1 sql00    sql          185 11월  6일  21:11 execl.c
-rw-r--r--   1 sql00    sql           69 11월  6일  20:03 fork.c
-rw-r--r--   1 sql00    sql          196 11월  6일  21:03 fork2.c
-rw-r--r--   1 sql00    sql          213 11월  6일  21:03 fork3.c
-rw-r--r--   1 sql00    sql         1736 11월  6일  21:08 process.html
-rw-r--r--   1 sql00    sql           60 11월  6일  20:00 system.c
<xmp>
--------------------------------------------------------------------------------
fork ( ) 함수: 새로운 프로세스를 생성한다.
예제: fork1.c
     1  main() {
     2      int pid;
     3
     4      pid =  fork();
     5      printf("my pid = %dn", pid);
     6  }
#43 hyundai1:/export/home0/oracle/sql/sql00/c% a.out
my pid = 0
my pid = 9015
예제: fork2.c
     1  main() {
     2      int pid;
     3
     4      pid =  fork();
     5      if(pid > 0) {
     6          printf("I am parent.n");
     7      } else if(pid == 0) {
     8          sleep(1);
     9          printf("I am child.n");
    10      } else {
    11          printf("fork error.n");
    12      }
    13  }
#75 hyundai1:/export/home0/oracle/sql/sql00/c% a.out
I am parent.
#76 hyundai1:/export/home0/oracle/sql/sql00/c% I am child.
--------------------------------------------------------------------------------
wait ( ) 함수: 부모 프로세스가 자식 프로세스가 종료될 때까지 기다린다.
예제: fork3.c
     1  main() {
     2      int pid;
     3      int status;
     4
     5      pid =  fork();
     6      if(pid > 0) {
     7          printf("I am parent.n");
     8          wait(&status);
     9      } else if(pid == 0) {
    10          sleep(2);
    11          printf("I am child.n");
    12      } else {
    13          printf("fork error.n");
    14      }
    15  }
#87 hyundai1:/export/home0/oracle/sql/sql00/c% a.out
I am parent.
I am child.
--------------------------------------------------------------------------------
atexit ( ) 함수: 프로그램이 종료되기 전에 atexit에 등록된 함수가 수행된다.
사용법
        #include 
        int atexit(void (*func)(void));
예제: atexit.c
     1  #include <stdio.h>
     2  #include <stdlib.h>
     3
     4  void cleanup() {
     5      printf("Clean up before exit.n");
     6  }
     7
     8  main() {
     9      atexit(cleanup);
    10      printf("Hello World !!n");
    11  }
#19 enterprise:/data1/student/c9844000% a.out
Hello World !!
Clean up before exit.
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 | 
|---|---|---|---|---|---|
| 169 | Develop | [c] 문자열 처리 관련 함수들 설명 | hooni | 2003.04.23 | 9288 | 
| » | Develop | [linux] 프로세스 관련 시스템콜 | hooni | 2003.04.23 | 9344 | 
| 167 | Develop | [c] 시간 계산 하는 프로그램 소스코드   | hooni | 2003.04.23 | 7971 | 
| 166 | Develop | [php] 마시마로 캐릭터 방명록   | hooni | 2003.04.23 | 9405 | 
| 165 | Develop | [c] OpenGL 색 입방체의 회전(입체) | hooni | 2003.04.23 | 9067 | 
| 164 | Develop | [c] 신기한 atoi함수(www.game79.net) | hooni | 2003.04.23 | 8397 | 
| 163 | Develop | [c][java] 소켓 프로그래밍(채팅 서버 C,  클라이언트 Java)   | hooni | 2003.04.23 | 8501 | 
| 162 | Develop | [js] 점점 커지는 새창.. | hooni | 2003.04.23 | 7895 | 
| 161 | Develop | [c] OpenGL 마우스 이벤트 | hooni | 2003.04.23 | 10102 | 
| 160 | Develop | [js] 사라지는 브라우저 | hooni | 2003.04.23 | 8510 | 
| 159 | Develop | [js] 이벤트 핸들러(Event Handlers) | hooni | 2003.04.23 | 8104 | 
| 158 | Develop | [js] 키보드 아스키코드(ASCII) 코드보기 | hooni | 2003.04.23 | 33518 |