mm,第一个buffer是个指针,指向保存读出的内容的空间,read返回的是读到的字节数
谢谢~~请问fd是文件句柄吗?
第一个是是指针?这里是read特别指定的吗?就是说是它的格式。
要不是这样,前面怎么没定义呀?
前面的buffer[80]就一次搞定了
read返回的是读到的字节数,不同意你这句话,read()返回的值后面怎么回判断是否是-1,好象是返回一种状态
open64()是这个:
Large-file support
These functions support 64-bit offsets.
read的三个参数是:
文件描述符:fd
缓冲区指针:buffer
缓冲区大小:sizeof(buffer) (== 80)
如果read调用失败就返回-1(一般系统调用都是失败返回-1),成功就返回读到的字节数
另:APUE是一本好书,建议看看,书名是:
《UNIX环境高级编程》(Advanced Programming in the UNIX Environment)
Richard Stevens写的,机械工业出版社出的中文版。
另外还应该找一本C语言的书看看
谢谢两位!!!
fd是文件描述符,在perl 用open是这样:open(handle,"file_name")
我估计fd和handle的作用相同,只是解释不同
看《UNIX环境编程》P148,有一段。
所有的I/O都是由两个系统调用完成:read()和write(),它们来自C的同名函数,对于这两个函数,第一个参数是文件描述符,第二个参数是字符数组,用做数据源或数据目标;第三个参数是要传输的字节数。
对第二个参数的解释好难理解阿。。。不知道英文版的是怎么说的?
比如说有一个缓冲区
char buf[512];
可以这样来使用:
read(fd, buf, 512);
write(fd,buf,512);
谢谢kj501,对格式感到陌生,先学着吧