Chinaunix首页 | 论坛 | 博客
  • 博客访问: 752588
  • 博文数量: 116
  • 博客积分: 923
  • 博客等级: 准尉
  • 技术积分: 1635
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-06 21:43
个人简介

一直帮老板搬运代码!!!

文章分类
文章存档

2013年(47)

2012年(69)

分类: LINUX

2012-08-06 21:55:38

number = read(handle, buffer ,n) ;

上述read调用函数中,各个参数的定义如下:

handle: 这是一个已经打开的文件句柄,表示从这个文件句柄所代表的文件读取数据。

buffer: 指缓冲区,即读取的数据会被放到这个缓冲区中去。

n: 表示调用一次read操作,应该读多少数量的字符。

number:表示系统实际所读取的字符数量。

 

这里,如果n过大,例如n = 1000000,那么读取将不堵塞,而直接返回-1,且errno 返回的错误码是14

这个errno是什么意思呢:

 #define EFAULT 14 /* Bad address */

错误的地址。这让程序员误导,而去看地址的问题或截取包,结果发现没什么问题。

其实原因就是n给的长度过长导致的。

阅读(1104) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~