티스토리 뷰

IT 이야기/프로그래밍

fork test 소스1

하늘과 나b 2010. 4. 27. 06:10
/* fork_test.c */

#include<sys/types.h>

#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>

int glob = 6 ;
char buf[] = "a write to stdout\n" ;

int main(void)
{
    int var ;
    pid_t pid ;

    var = 88 ;

    if ( write (1, buf, sizeof(buf)-1) != sizeof(buf) -1 )
    {
        printf("write error\n");
        return -1;
    }

    printf("before fork\n");
    if ( ( pid=fork()) < 0 )
    {
        printf("fork error\n") ;
        return -1 ;
    }
    // 자식 프로세스인 경우
    else if ( pid == 0 )
    {
        glob++;
        var++;
        printf("child process\n") ;
    }
    // 부모 프로세스인 경우
    else
    {
        sleep(2);
        printf("parent process\n") ;
    }

    printf("pid = %d, glob = %d, var = %d\n", getpid(), glob, var ) ;
    sleep(10) ;
    printf("process %d terminated\n", getpid()) ;
    return 0 ;
}


댓글