[quote=引用 1 楼 lishanchao 的回复:] 1. 楼主代码怎么写的? 我是这样写的,标准输入变成非阻塞OK。 flag = fcntl(0, F_GETFL, 0); flag |= O_NONBLOCK; if (fcntl(0, F_SETFL, flag) < 0) { /* fgets no-block now */ perror("Set stdin to non-block fails."); exit(1); } 2. 用select监视你read的fd。
要么用select,要么用SO_RCVTIMEO
1. 楼主代码怎么写的? 我是这样写的,标准输入变成非阻塞OK。 flag = fcntl(0, F_GETFL, 0); flag |= O_NONBLOCK; if (fcntl(0, F_SETFL, flag) < 0) { /* fgets no-block now */ perror("Set stdin to non-block fails."); exit(1); } 2. 用select监视你read的fd。
18,773
社区成员
11,463
社区内容
加载中
试试用AI创作助手写篇文章吧