请教一个linux read阻塞的问题
1.当没有数据的时候,read是会阻塞的(我设置了nonblock也试了一遍,还是阻塞在那,返回不了)?
2.如何设置一个timeout,在规定的时间内如果读取不到数据的话就会返回
不吝赐教,谢谢
[解决办法]
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。
[解决办法]