c 언어

프로세스 23_1

sokoban 2007. 9. 14. 11:48

프로세스 개념
프로세스 실행중에 있는 프로그램 ID배정
fork는 프로세스 운영체젱서만 가능하다
fork는 자식 프로세스를 생성을 한다.
예를 들어서 A라는 프로세스가 구구단을 출력하는 프로그램이라고하면
자식 프로세스가 실행이되서
부모프로세스랑  동일한 코드를가지고 실행한다.

그래서 코드내에서 어떤게 부모인가 어떤게 자식인가 구분을 할수 있어야한다.
Fork에서 프로세스를 아이디값을 반환한다.
어떤것이 자식인가 볼려면 포크의 반환값이 0인것을 보면된다.
포크를 호출하고 나서 반환값을 가지고 부모자식간의 값을 구분을 해서
수행을 하면된다.

부모프로세스에서 포크로 자식 프로세스를 생성하면 부모는 포크아이디가 있지만
자식은 포크가없다.
----------------------------------------------------------------------

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

main()
{
    /* fork 호출하기 전이므로 현재(부모) 프로세스에서만 한번 실행 */
    printf("one\n");
    /* fork 호출에 의해 자식 프로세스 생성 */
    if (fork() == -1)  /* fork에 실패하면 */
       perror("fork failed");
    else  /* fork에 성공하면 */
       printf("two\n");   /* 부모 프로세스와 자식 프로세스 각각이 실행 */
}