• 文件I/O


    在对文件进行读写操作时

    需要先打开文件

    内核为每一个进程维护一个打开文件的列表

    该表被称为  文件表 file table

    该表由一些叫 文件描述符(fds) 的非负整数进行索引

    列表中的每项均包含一个打开文件的信息,其中包含一个指向文件备份inode内存拷贝的指针和元数据

    用户空间和内核空间把每个文件描述符作为每个进程的唯一cookies

    打开一个文件返回一个文件描述符。

    而接下来的操作就是把文件描述符作为基本的参数

    子进程默认会获得一份父进程的文件表拷贝

    文件描述符由C语言的int 类型表示

    每个进程按照惯例会  至少打开三个文件描述符 0,1,2

    除非进程显示地关闭它们

    文件描述符 0 是  标准输入

    文件描述符 1 是 标准输出

    文件描述符 2 是标准错误

    文件描述符不仅仅 用于 访问 普通文件

    也用于访问设备文件,管道,目录以及快速用户空间锁,fifos 和 套接字

    遵循一切皆文件的理念

    任何你能读写的东西都可以用文件描述符来访问

    open() 系统调用

    通过 open()系统调用来打开一个文件并获得一个文件描述符

    以只写模式打开的文件不能被读取

    反之亦然

  • 相关阅读:
    集成学习(一):概述
    机器学习:处理非平衡数据集的办法
    支撑向量机 SVM(一)
    集成学习(五):xgboost 学习总结
    数组的实现(重载[]、=、==、!=运算符重载)
    运算符重载总结
    运算符重载进阶
    运算符重载入门demo
    类模板的简单使用
    static成员变量和static成员函数例程
  • 原文地址:https://www.cnblogs.com/Cheetos/p/5350313.html
Copyright © 2020-2023  润新知