[9급 지방직 컴퓨터일반 2020년 20번]

다음은 리눅스 환경에서 fork() 시스템 호출을 이용하여 자식 프로세스를 생성하는 C 프로그램이다. 출력 결과로 옳은 것은? (단, “pid = fork();” 문장의 수행 결과 자식 프로세스의 생성을 성공하였다고 가정한다)
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<errno.h>
#include<sys/wait.h>

int main(void) {
    int i=0, v=1, n=5;
    pid_t pid;

    pid = fork();

    if( pid < 0 ) { 
        for(i=0; i<n; i++) v+=(i+1);
        printf("c = %d ", v); 
    } else if( pid == 0 ) {
        for(i=0; i<n; i++) v*=(i+1);
        printf("b = %d ", v); 
    } else {
        wait(NULL);
        for(i=0; i<n; i++) v+=1;
        printf("a = %d ", v); 
    }   
    return 0;
}
컴퓨터일반
  1. ①b = 120, a = 6
  2. ②c = 16, b = 120
  3. ③b = 120, c = 16
  4. ④a = 6, c = 16

선지를 골라 바로 채점해 보세요.

정답 ①

출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)

신고가 접수됐습니다. 감사합니다.

오류 신고