发新话题
打印

谁来解决,谁就是高手!!!

――好久了,都没有人理我。
& M; v+ l7 @& \; l1 k6 ^7 H我有一流程如下之程序,当连接在ttyS0的设备没有准备好时程序挂起。试图将close(fd)放到子进程中,程序不会 挂起,但当设备恢复正常后,哪些先前送出的数据仍旧送了过去,如何将其清除?0 E$ F+ F% d! K9 b( ^6 U! N. N- c2 P
___________________________________________' H8 k7 p* K8 K- I% U3 h# W
注意:ttyS0必须用crtscts,即:* x  t  i/ i) r( T' b+ P
stty -opost crtscts < /dev/ttyS04 T; x0 w) Q1 D7 q2 Z
____________________________________________2 J, b) I0 u% m- w+ `

8 q" w9 X) J2 o* nfd=open("/dev/ttyS0",O_RDWR);
: V, `, l$ G1 V. Q- t8 f8 Hpid=fork();
1 Y0 y  d" J. |! Nif (pid==0)  L! N8 j& W2 |& U! C
{0 ^( H7 s. ?( H5 Q
write(fd,buf,20);0 C& B5 f% A* C* e
exit(0);& J6 e! a9 c6 q$ p
}
) [. Q: c" ~( H! g7 `else) ~4 y) D+ N4 Q5 }9 [6 q
{
  p0 e6 I+ ~  asleep(10);3 X, ]! H8 T. ~7 k
kill(pid,9);
, C+ Q) D' M4 Y+ g1 Iclose(fd);
" g% b3 `% u  n+ y- Nexit(0);' e( C) G7 A# N2 H. J
} 5 L9 ~, @. s, ?+ `' M
4 A8 ~/ l* C0 H4 v% e
      

TOP

发新话题