上一篇:关于open()`不懂的地方。 >>
使用read()的一个例子
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
int main( void )
{
int fd;
int size_read;
char buffer[80];
/* Open a file for input */
fd = open( "myfile.dat", O_RDONLY );
/* Read the text */
size_read = read( fd, buffer,
sizeof( buffer ) );
/* Test for error */
if( size_read == -1 ) {
perror( "Error reading myfile.dat" );
return EXIT_FAILURE;
}
/* Close the file */
close( fd );
return EXIT_SUCCESS;
}
sizeof()是什么意思?
请问这里的 O_RDONLY是什么意思?
请问这里的 EXIT_SUCCESS是术语吗?还是可以自己定义的?
open64() open()
发现有这两个相似的函数,他们有什么区别?
我这里没查到open64()
sizeof()是求变量或数据类型大小的运算符,可以找一本c语言的入门书看一下
O_RDONLY是只读打开,参见 man 2 open
EXIT_SUCCESS和EXIT_FAILURE是退出码,参见 man 3 exit
sizeof()是求变量或数据类型大小的运算符,可以找一本c语言的入门书看一下
O_RDONLY是只读打开,参见 man 2 open
EXIT_SUCCESS和EXIT_FAILURE是退出码,参见 man 3 exit
谢谢~
open64()我是在这里看到的。
http://www.qnx.com/developer/docs/q...ref/o/open.html
size_read = read( fd, buffer,
sizeof( buffer ) );
fd是文件句柄。 这里两次出现buffer,后面的拿80代替,第一个buffer是什么意思?
size_read好象是计算它的返回状态?
open64()我是在这里看到的。
http://www.qnx.com/developer/docs/q...ref/o/open.html
size_read = read( fd, buffer,
sizeof( buffer ) );
fd是文件句柄。 这里两次出现buffer,后面的拿80代替,第一个buffer是什么意思?
size_read好象是计算它的返回状态?
mm,第一个buffer是个指针,指向保存读出的内容的空间,read返回的是读到的字节数
谢谢~~请问fd是文件句柄吗?
第一个是是指针?这里是read特别指定的吗?就是说是它的格式。
要不是这样,前面怎么没定义呀?
前面的buffer[80]就一次搞定了
第一个是是指针?这里是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语言的书看看
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的作用相同,只是解释不同
fd是文件描述符,在perl 用open是这样:open(handle,"file_name")
我估计fd和handle的作用相同,只是解释不同
看《UNIX环境编程》P148,有一段。
所有的I/O都是由两个系统调用完成:read()和write(),它们来自C的同名函数,对于这两个函数,第一个参数是文件描述符,第二个参数是字符数组,用做数据源或数据目标;第三个参数是要传输的字节数。
对第二个参数的解释好难理解阿。。。不知道英文版的是怎么说的?
所有的I/O都是由两个系统调用完成:read()和write(),它们来自C的同名函数,对于这两个函数,第一个参数是文件描述符,第二个参数是字符数组,用做数据源或数据目标;第三个参数是要传输的字节数。
对第二个参数的解释好难理解阿。。。不知道英文版的是怎么说的?
比如说有一个缓冲区
char buf[512];
可以这样来使用:
read(fd, buf, 512);
write(fd,buf,512);
char buf[512];
可以这样来使用:
read(fd, buf, 512);
write(fd,buf,512);
谢谢kj501,对格式感到陌生,先学着吧
下一篇:非ROOT用户能访问另一个非ROOT用户的文件,WH… >>
相关文章:
- · how to set the local hostname ?
- · void* alloca()中不懂的
- · 关于网络编程的,cmsghdr的意思?
- · struct if_data 中的if_metric的值的意思不懂…
- · 不明白系统调用的意思?
- · 关于文件的状态,modify AND change
- · 为什么struct sk_buff{}中有struct icmphdr *…
- · 关于内核的文件系统管理
- · 怎么计算出尽可能大的素数?
- · 请教个语法问题?
- · 请教sizeof()里面的值?
- · 如何使编译后的程序运行时将源程序原样打印出…
- · 怎么在一秒钟内循环三次?
- · 如何用c将512字节文件文件写入主引导扇区?
- · 怎么取得和设置a socket的属主?
- · connect错误
- · 夷??pid的类型可以是int ??
- · 同样的程序,在UNIX不能通过?
- · 请问怎么可以得到一个sock的buffer ?
- · recvline[n]=0 /* null terminate */ ______??
- · 请教一个共享内存问题
- · 一个进程同时拥有的线程数目有最大限制吗??…
- · 这个书里的程序好象错了?
- · ifstrem的eof状态问题
- · 常用函数速查
- · [C]指针练习-3
- · [C]指针练习-2
- · C函数的一个规范写法
- · 有限元软件
- · 用BCB实现超星格式转换为BMP格式
- · 在C++Builder中使用Compress Html Help
- · 利用BCB巧建WEB浏览器
- · BCB3.0下编译含有MFC的程序
- · 利用C++ Builder让软件字幕动起来
- · C++ Builder操纵多媒体数据库
- · 个性凸现的动画特技效果
- · 简单的用户密码管理系统
- · 程序开始时先显示信息框
