文件描述符 和 流的关系

来源:互联网 发布:2016流行网络用语 编辑:程序博客网 时间:2024/06/06 07:11
任何一种操作系统中,程序在开始读写一个文件的内容之前,必须首先在程序与文件之间建立连接或通信通道,这一过程称为打开文件。打开一个文件的目的可以是为了读或者为了写,也可以是即读又写。
    UNIX系统中有两种机制用于描述程序与文件的这种连接:
    (1)文件描述符

    (2)流

文件描述符 和 流:相同点:

1. 都是用来表示用户程序与被操作的文件之间的连接,并在此连接的 基础上对文件进行读写等访问。

2. 都能表示与普通文件,与设备(如终端),与管道或者套接字的连接,用户打开一个文件,要么返回文件描述符,要么返回一个流。

3.  都包含了一大类的I/O库函数

文件描述符 和 流:不同点:

文件描述符表示为int类型的对象。例如标准输入对应文件描述符0,标准输出对应文件描述符1。
而流则表示为指向结构FILE的指针FILE* ,因此流也称为“文件指针”

如果需要对特定设备进行控制操作,必须使用文件描述符方式,没有函数能对流进行这类操作。

如果需要按照特殊的方式进行I/O操作(例如非阻塞的方式),必须使用文件描述符方式,也没有函数能对流进行这类操作。

文件描述符 和 流的关系:

     流给用户程序提供了更高一级的(功能更强大,使用更简化)的I/O接口,它处在文件描述符方式的上层,也就是说,流函数是通过文件描述符函数来实现的。

流 相对于 文件描述符 的 优点:

执行实际输入输出操作的流函数集合比文件描述符函数要丰富很多,而功能也灵活,强大不少。 

文件描述符函数只提供简单的传送字符块的函数

流函数提供格式化I/O,字符I/O,面向行的I/O等大量函数

流函数有利于程序的移植,任何基于ANSI C的系统都支持流,文件描述符的支持则较弱

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 唐筛年龄高风险怎么办 21三体综合症高风险怎么办 朋友深陷李强365怎么办 飞机上烟瘾犯了怎么办 怀孕一个月吸烟了怎么办 烟瘾犯了没烟怎么办 押金交了不租了怎么办 买车首付款不够怎么办 双11订金不退怎么办 在商场买到假货怎么办 网上买到假手机怎么办 网上买了假手机怎么办 网银转账被骗了怎么办 支付宝被骗了钱怎么办 被支付宝骗了钱怎么办 头发出油怎么办小妙招 照相的时候脸歪怎么办 怀孕两个月同床了怎么办 小姐被警察抓了怎么办 我的世界迷路了怎么办 砸到手指甲很痛怎么办 手被锤子砸肿了怎么办 拇指突然疼肿了怎么办 手指甲压紫了痛怎么办 砸到手指头肿了怎么办 小婴儿体重不长怎么办 2岁半宝宝不说话怎么办 米兰叶子掉光了怎么办 qq雷霆战机闪退怎么办 微信限额20万怎么办 欧拉方程x<0怎么办 柿子核吃下去了怎么办 橡胶底白色变黄怎么办 20了丁丁还很小怎么办 5角硬币吞进肚子怎么办 孩子吞了5角硬币怎么办 左腿比右腿微粗怎么办 一个腿长一个腿短怎么办 刚买的毛笔很硬怎么办 我哥哥太爱我了怎么办 如果婚姻无法维持该怎么办