할당을 위해 총 4 개의 프로세스를 만들고 각 프로세스마다 문자를 여러 개 인쇄해야합니다. 이 일을 위해 fork()
번을 두 번 호출해야합니다.C 코드를 실행하기 전에 fork()에서 여러 프로세스 ID를 출력
각 프로세스마다 문자를 여러 번 인쇄 할 수있었습니다. 문제는 할당 세부 사항의 두 번째 부분에서 발생합니다. 글자를 출력하기 전에 각 프로세스의 프로세스 ID를 출력해야합니다. 출력은 다음과 같아야합니다
Process ID: 123
Process ID: 124
Process ID: 125
Process ID: 126
AAAAABBBBBCCCCCDDDDD
내가이이 코드를 사용하여 수행 할 수 있다고 생각 : 나는 라인
child1 = fork()
에서
fork()
분할 이후 생각
pid_t child1, child2;
child1 = fork();
child2 = fork();
printf("Process created. ID: %d\n", getpid());
if(child1 == 0) { // print letters }
else if(child2 == 0) { //print letters }
else { // call waitpid and print more letters }
을 다음 child2 = fork()
다시 분할 한 다음에 간다 다음 줄이면 모든 것을 인쇄하고 if-else
문장을 누르십시오. 그러나 이것은 다음과 같습니다.
Process created. ID: 20105
Process created. ID: 20107
AAProcess created. ID: 20106
AAABBBProcess created. ID: 20108
BBCCCCCDDDDD
프로세스 생성 인쇄 문이 맨 처음 실행되도록하려면 어떻게해야합니까?
'child1 = fork(); child2 = fork();'내가 틀렸다면 이것은 자식 프로세스를 자식 내에서 생성 할 것입니다 .. 당신이 원하는 것이 아니라고 믿습니다. –
print id 문 뒤에 지연을 추가하려고 시도 했습니까? ['sleep'] (http://man7.org/linux/man-pages/man3/sleep.3.html)과 같이 ID가 인쇄 된 후 인쇄 문자가 인쇄됩니다. – SSC
@SCC 지연은 Alex가 fork()를 잘 구조 할 필요가 있다고 생각하지 않을 것입니다. –