getppid,getpid的问题
#include <stdio.h>
3 |& A6 R9 p2 k! C2 I$ H& ]/ O: \//解释下目前进程的父进程ID,目前进程ID,fork的子进程ID.
' Y! @7 w: `+ v3 d/ m//是不是第二此调用fork()的进程ID都是就近取的?
+ c2 H, ^8 k9 j9 I+ Z0 j//谢谢了!' L7 o; E6 [* g7 f: p$ J. ]
/*
6 I4 @! s# N, U. i" I+ @17331
' `) o, k. ]2 L3 N$ `187560 \" @1 B; j; s1 W
18757! S8 y6 \! ?) U' K/ R& j
hello! U% W& a+ b5 E" x8 A
6 b. Y- i9 R" M9 F% J. i" t' i17331
9 J% E! H3 ^7 g187563 Q/ j% N4 k! Z$ A! G' z P% b
18759) [7 v# n% \) G* l; v. |* h
hello!# B) r, F& F2 X3 M E( J6 y
" M2 M# `% A8 j6 E, f
13 q7 [) T: E; \
18757" [; J i- i8 u5 L- t4 g. z+ m+ W
18758
& V l$ p! E. J( zhello!
/ b! p- D, f9 P @: Y0 U- Q*/
9 t; ^- p2 }5 d V: B" R( S- T. W) l8 j
8 S$ y) R9 M3 ^6 p' ?- j" Z' s4 L
/*5 B% @( T% H0 c, b5 [% Z- D, |
18772
* _0 |- B# w+ K6 @" p( q2 y17331# W# q: n. Q J) E7 k& n
18771* r+ {$ H/ D( J0 h
hello!8 t% {7 C0 B) J* f& D
0 F% m6 V# `, F" h5 F* Y! ]173318 z! T9 `! `3 N7 U
18771
' W6 C$ c c: E% @18774
9 R1 r6 f8 V* F+ R/ }% Q* s9 |- J/ ihello!
0 V: [2 f, P0 _; w% E5 r% S. x2 p5 Q! u5 e% o9 O
1
; b6 o6 i" Z0 s18772
; C0 a, F. T8 T/ t- l# I6 @ Z7 x18773
3 [& C( S9 Z% a3 i3 F3 Dhello!% P# m( v6 G1 j5 C( r( O/ |8 L
*/( ]- r! B0 m2 a6 Q& N" v
+ l9 @$ z) i6 o9 N+ W1 d
5 U9 [( k1 H' Z1 @2 h' Y+ C8 i4 W& N/ |) _0 t/ {+ |
main()1 e- l# b" ]1 Z- b% [6 u
{
6 d) M; L: g# ^1 Zint filedes[2];6 L7 F/ L6 ]! I: D5 |& D
char buffer[80];
]0 l0 H2 w& o& d) \ tpipe(filedes);( z0 \+ S) ?4 t0 a. o- S3 z% I6 b4 N
int i;" ~! ]& G7 t7 N l& R; t" R$ i
for(i=1;i<3;i++){* H6 C1 N3 H, T) ~9 X
if(fork()>0){/ Z9 r9 m& x- L; K* {
/* 父进程*/
/ k8 r5 J4 ]3 F& Zchar s[ ] = "hello!\n";
: p8 b+ f" [# x3 ]% Dwrite(filedes[1],s,sizeof(s));2 S1 X# u1 J* x/ p- Y, \
printf("%d\n",getppid());
3 K5 O% U' Q0 h' V/ k! y
" |! z& @( V7 a2 |printf("%d\n",getpid());
7 t7 M4 I3 I# ]0 j- n; c0 T) s, z* h( {% w% y7 i- J) n7 L
}
; }. m* |& _9 }! Y3 Relse{
& O- n7 \: e2 r5 j6 E5 n/*子进程*/
6 K4 H9 q* w8 U y9 H* x) yread(filedes[0],buffer,80);
/ @( l. J* ]) [& F: r9 ^" L. eprintf("%d\n",getpid());4 @; M$ z9 {3 s. w0 y2 N
printf("%s",buffer);}3 p/ c$ {2 p/ k1 @ ^
}: M) C0 K C, z6 [4 ^9 c- M
}