文件流指针和文件描述符的区别
来源:互联网 发布:圆点是什么软件 编辑:程序博客网 时间:2024/04/29 16:36
文件描述符和文件指针
2012-04-13 04:58:32| 分类:默认分类 | 标签:|字号大中小 订阅
文件描述符和文件指针linux中对于文件的操作有基于文件描述符的I/O和基于流的I/O, 但不知道这两种操作之间有什么样的联系?
文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描述符来引用;
而流(如: fopen)返回的是一个FILE结构指针,看过一些书上说FILE结构中包含有文件描述符.
谁能够详细的给我讲讲它们之间的关系呢?
谢谢了!!!FILE结构是包含有文件描述符的
FILE结构函数可以看作是对fd直接操作的系统调用的封装, 它的优点是带有I/O缓存
K&R有fopen的实现,
fileno(FILE *stream);
返回stream对应的文件描述符。
从文件描述符到文件流对应的函数不存在。
两种io的区别,也可以参见《unix环境高级编程》。文件描述符,在linux系统中,设备也是以文件的形式存在,要对该设备进行操作就必须先打开这个文件,打开这个文件就会,就会获得这个文件描述符,它 是个很小http://www.321fabu.com的正整数,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。文件描述符的优点http://www.yes1b.com/:兼容POSIX标准,许多Linux和UNIX系统调用都依赖于它。文件描述符的缺点:不能移植到UNIX以外的系统上去,也不直观。
文件指针,C语言中使用的是文件指针而不是文件描述符做为I/O的句柄."文件指针(file pointer)"指向进程用户区中的一个被称为FILE结构的数据结构。FILE结构包括一个缓冲区和一个文件描述符值.而文件描述符值是文件描述符表中的一个索引.从某种意义上说文件指针就是句柄的句柄。有点明白了:mrgreen:
谢谢!int
fileno(FILE *stream);
返回stream对应的文件描述符。
从文件描述符到文件流对应的函数不存在。
...
UnixStudier 发表于 2008-09-06 19:14 http://bbs.chinaunix.net/images/common/back.gif
从文件描述符fd 到文件流 FILE* 的函数是
FILE* fdopen(int filedes,const char* mode);学习。。
文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描述符来引用;
而流(如: fopen)返回的是一个FILE结构指针,看过一些书上说FILE结构中包含有文件描述符.
谁能够详细的给我讲讲它们之间的关系呢?
谢谢了!!!FILE结构是包含有文件描述符的
FILE结构函数可以看作是对fd直接操作的系统调用的封装, 它的优点是带有I/O缓存
K&R有fopen的实现,
请教关于IP地址和MAC地址绑定的问题
看看就知道了这个好像在C专家编程里面有讲解的。Linux下文件指针和文件描述符也是可以通过函数转换的intfileno(FILE *stream);
返回stream对应的文件描述符。
从文件描述符到文件流对应的函数不存在。
两种io的区别,也可以参见《unix环境高级编程》。文件描述符,在linux系统中,设备也是以文件的形式存在,要对该设备进行操作就必须先打开这个文件,打开这个文件就会,就会获得这个文件描述符,它 是个很小http://www.321fabu.com的正整数,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。文件描述符的优点http://www.yes1b.com/:兼容POSIX标准,许多Linux和UNIX系统调用都依赖于它。文件描述符的缺点:不能移植到UNIX以外的系统上去,也不直观。
文件指针,C语言中使用的是文件指针而不是文件描述符做为I/O的句柄."文件指针(file pointer)"指向进程用户区中的一个被称为FILE结构的数据结构。FILE结构包括一个缓冲区和一个文件描述符值.而文件描述符值是文件描述符表中的一个索引.从某种意义上说文件指针就是句柄的句柄。有点明白了:mrgreen:
谢谢!int
fileno(FILE *stream);
返回stream对应的文件描述符。
从文件描述符到文件流对应的函数不存在。
...
UnixStudier 发表于 2008-09-06 19:14 http://bbs.chinaunix.net/images/common/back.gif
从文件描述符fd 到文件流 FILE* 的函数是
FILE* fdopen(int filedes,const char* mode);学习。。
- 文件流指针和文件描述符的区别
- 文件描述符和文件指针区别
- 文件描述符和文件指针的区别
- 文件描述符和文件指针的区别
- 文件描述符和文件指针的区别
- fork文件描述符和文件指针的区别
- 文件描述符和文件指针的区别
- 文件描述符和文件指针的区别
- 文件描述符和文件指针的区别
- 文件描述符和文件指针的区别
- 文件描述符和文件指针的区别
- 文件描述符和文件指针的区别
- 文件指针和文件描述符的区别
- 文件描述符和文件指针的区别
- 文件描述符和文件指针的区别
- 文件描述符和文件指针的区别
- 文件指针和文件描述符的区别
- 文件描述符和文件指针的区别
- CentOS安装squid代理服务器
- PHP与DOM解析XML
- VS 2010 快捷键
- 《对C语言编写的银行系统用C++进行重构——4》
- poj 3393 Lucky and Good Months by Gregorian Calendar 模拟
- 文件流指针和文件描述符的区别
- C# Reflection 获取私有函数
- struts--为Action的属性注入值、处理流程
- JAVA的Random类(转)
- 5.Strut国际化动态文本(声明式处理异常,可以拥有多个占位符):struts-config.xml
- 6.Strut国际化动态文本(声明式处理异常,可以拥有多个占位符):web.xml
- 《对C语言编写的银行系统用C++进行重构——5》
- 7.Strut国际化动态文本(声明式处理异常,可以拥有多个占位符):资源文件
- Delphi发送邮件...