내가이 C 코드 시퀀스가 작동합니다. 첫 번째 줄에서는 fork()
을 호출하고 첫 번째 부모 프로세스에서 줄 # 1부터 줄 # 4까지의 모든 내용이 실행됩니다. 상위 프로세스 (1)에서 한 번 더 fork()
을 호출하므로 2 번 줄부터 3 번 줄까지 부모 2 프로세스가 생기고 3 번에서 4 번 자식 프로세스까지 처리됩니다. 실제로이해하는 방법을 포크() 시스템 호출은
Parent 1 PID: ....
0
1
2
3
4
5
6
7
8
9
Parent 2 PID: ....
a
b
c
d
e
Child 2 PID: ....
F
G
H
I
Child 1 PID: ....
10
11
12
13
14
15
16
17
18
19
있어 무엇 : 나는 인쇄 할 것으로 예상 무엇
내가 잘못 할 무엇Parent 1 PID: 3877
0
1
2
3
4
5
6
7
8
Parent 1 PID: 3878
0
1
2
3
4
5
6
7
8
9
Parent 2 PID: 3877
a
b
c
d
e9
Parent 2 PID: 3878
9
a
b
c
d
Parent 2 PID: 3879
a
b
c
d
e9
eParent 2 PID: 3880
a
b
c
d
e
?
'fork()! = -1'는 무엇을 확인합니까? –
호출이 실패하면 -1이 리턴됩니다. 그래서 전화가 끊어지지 않았는지 확인합니다. –
그래서'else' 블록은 무엇을합니까? –