该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
那个C文件是这么写的:
#include "apue.h"
2 #include
3
4 #define BUFFSIZE 4096
5 int
6 main(void)
7 {
8 int n, flag;
9 char ctlbuf[BUFFSIZE], datbuf[BUFFSIZE];
10 struct strbuf ctl, dat;
11
12 ctl.buf = ctlbuf;
13 ctl.maxlen = BUFFSIZE;
14 dat.buf = datbuf;
15 dat.maxlen = BUFFSIZE;
16 for ( ; ; ) {
17 flag = 0; /* return any message */
18 if ((n = getmsg(STDIN_FILENO, &ctl, &dat, &flag)) < 0)
19 err_sys("getmsg error");
20 fprintf(stderr, "flag = %d, ctl.len = %d, dat.len = %d\n",
21 flag, ctl.len, dat.len);
22 if (dat.len == 0)
23 exit(0);
24 else if (dat.len > 0)
25 if (write(STDOUT_FILENO, dat.buf, dat.len) != dat.len)
26 err_sys("write error");
27 }
28 }