fork( )함수 사용한건데..

hoohard의 이미지

int main()
{

int Card[13]={1,2,3,4,5,6,7,8,9,10,10,10,10};

int Com[2]={0};
int Usr[2]={0};

pid_t child,pid;
int status,n,i;
// int card1, card2;
int U_sum, C_sum;


for(i=0; i<2; i++) {

pid=fork();

if(pid<0)
printf("fork fales");


if(pid == 0) // chile creation
{
srand((int)time(NULL));
n = rand()%13;
Com[i]=Card[n];
status=Com[i];
}

else //parent
{
child = wait(status);
srand((int)time(NULL));
n = rand()%13;
Usr[i]=Card[n];
}
sleep(1);
}

sum_card(&C_sum,&U_sum,Com,Usr);
compare(&C_sum,&U_sum,Com,Usr);

return 0;
}

허접스런 코드입니다...
fork써서 자식실행후 부모가 실행되야하는데..
결과적으로 0이나옵니다.. 얘는 나오면 않되는건데..
그리고 수행이 두번씩 되는데.. 자~꾸 보아온 결과.. wait가 않되서 자식-부모 실행후 부모가 다시 한번 실행되는듯..
싶은 추측중입니다. ㅡㅡ;;

wait를 어찌 쓰야할지.. 이거.. 무슨 문제가 있는겐지.. 좀..좀..제발좀..
알려주세요~!! ㅡㅡ;;

poplinux의 이미지

글을 쓰다가 잠드신 듯 합니다.

========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux

임베디드 리눅스 관련 프리렌서 지향

gamdora의 이미지

:D

익명사용자의 이미지

< 때문에 짤렸겠죠.