fork로 여러개의 process를 실행시키고 각각의 프로세스에서
stdin으로 문자열을 입력받을때
어느 process로 입력될지는 알수 없지만
하나의 프로세스에 하나의 입력이 보장되는지를 확인하기 위해서
다음과 같은 테스트를 했다.
결과는 보장되지 않는다....
출력 결과를 예측할수 없고,
이런식의 프로그램을 하면 안될것 같다.
int main( int argc, char * argv[] )
{
int child_id, n, i;
char buffer;
int child_max = atoi(argv[1]);
for( i = 0; i < child_max; i++ )
{
fprintf( stderr, "[%d]forking..\n", i);
if(( child_id = fork()) == 0 )
{
while( (n = read( 0, &buffer, 1 )) > 0 )
{
printf("%c", buffer );
}
exit(0);
}
}
wait(NULL);
return 0;
}
* fgetc로 했을때도 마찬가지결과였다.
'C언어' 카테고리의 다른 글
프로그래밍 관련 사이트 (0) | 2013.09.10 |
---|---|
로컬 프로그램 멀티 쓰레드 (0) | 2013.08.08 |
warning: passing argument of discards qualifiers from pointer target type (0) | 2013.07.30 |
error while loading shared libraries (0) | 2013.04.21 |
[autotools] libtool link 옵션 (0) | 2013.04.01 |