ChinaUnix.net
相关文章推荐:

read 标准输入 非阻塞

该程序是APUE2第14章程序清单14-1 [code] #include "head.h" char buf[500000]; int main(int argc, char** argv) { int nwrite, ntowrite; char *ptr = NULL; ntowrite = read(STDIN_FILENO, buf, sizeof(buf)); fprintf(stderr, "read %d bytes\n", ntowrite); set_fl(STDOUT_FILENO, O_NONBLOCK); ptr = buf; ...

by xiaozhu2007 - C/C++ - 2008-01-15 23:54:41 阅读(11581) 回复(4)

相关讨论

大家好,我用阻塞socket, 在select框架下,当读或者写的时候,请问是用哪种方式呢? 1. 不断的读,一直读到指定的数据大小 2. 只需要recv一次就可以了(是不是下次select仍可检测到socket可读,再继续读完之前的数据?) 对应的写,也用哪种方式呢? 1. 不断地写,一直写完数据 2. 写一次(是不是下次select检测到可写的时候再继续写?) 不知该用哪种方式。。。。请各位大侠解答......

by larkinboy - C/C++ - 2010-12-07 13:35:04 阅读(5765) 回复(17)

read 的两种情况,为什么第一中不阻塞,第二种阻塞? /********************** 情况1 *************************/ #include #include #include #include #define MAXLINE 5000 int main(void) { int n; char line[MAXLINE]; int fd = open("dump", O_RDONLY); while (1){ n = read(fd, line, MAXLINE); if (0 > n){ printf("read error\n")...

by vivian2086 - C/C++ - 2009-10-15 19:52:32 阅读(1240) 回复(3)

阻塞打开设备文件,如果磁盘某个扇区坏了,在read()这个磁盘扇区会阻塞,会阻塞很久,至少大于120秒,一直出不来。 可能的解决办法是修改linux内核的驱动,把堵的超时时间改为自己想要时间,现在不知道修改哪个内核的哪个文件里的变量? 如果有其他解决办法更好,当然select是不行的。 Linux version 2.6.14 请高手指点一二.

by shengger - 内核源码 - 2009-01-10 17:09:46 阅读(1783) 回复(3)

:em14::em14:我的SHELL用到一个read标准输入,我想将这个SHELL放在后台运行, nohup ./a.sh &. 但是这样我将终端退出后,nohup ./a.sh &.不久也退出。并不能一直 保留在后台运行?? 有什么办法使其一直在后台运行,或者替代方法??? >more a.sh #!/user/bin/sh while read line do echo $line done :em15:

by flyinfj - Shell - 2012-05-08 13:28:43 阅读(1466) 回复(3)

在实现中,想截取标准输入,把输入写入到一个socket连接,并且把socket连接发来的数据写入标准输出,应该怎么实现? 如果使用先读后写的方式,因为读的长度未知,怎么避免read阻塞吊死??- [ 本帖最后由 lex.reiter 于 2009-2-5 13:12 编辑 ]

by lex.reiter - C/C++ - 2009-02-06 04:18:52 阅读(5227) 回复(18)

服务器端应该是用.net写的 我客户端去读取数据 代码段1:[code]Bufferedreader in = new Bufferedreader(new InputStreamreader( socket.getInputStream())); int n = 0; while ((n = in.read()) > 0) { char c = (char)n; System.out.print((char) n); } System.out.println("end");[/code]代码段2:[code]DataInputStream in = new DataInputStream(socket.getInputStream()); byte[] buf = new byte[1024...

by bellszhu - Java - 2012-09-07 13:23:02 阅读(2806) 回复(1)

不能用阻塞打开设备文件。现在想要read在1秒内读不到数据,就返回,如何做呀? 请各位提示提示。。

by haoyue - 程序开发 - 2006-12-25 17:06:27 阅读(2266) 回复(11)

不能用阻塞打开设备文件。现在想要read在1秒内读不到数据,就返回,如何做呀? 请各位提示提示。。

by haoyue - Linux环境编程 - 2006-12-25 17:06:27 阅读(6752) 回复(11)

优化key_buffer_size key_buffer_size指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和 Key_reads,可以知道key_buffer_size设置是否合理。比例key_reads / key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可以使用SHOW STATUS LIKE ‘key_read%’获得)。 key_buffer_size只对MyISAM表起作用。即使你不使用MyISAM表,但是内部的临时磁盘表是MyISAM表...

by shijiang1130 - Linux文档专区 - 2007-05-03 10:07:09 阅读(1429) 回复(0)

我希望一个在需要结束一个线程的时候, 能让它从阻塞read()处很快的返回。 怎么样做到这一点呢, 不能用pthread_cancel, read()返 回后做一点处理再正常的退出线程。

by oatmeal3000 - Linux环境编程 - 2009-11-21 16:41:52 阅读(2449) 回复(3)