Unix I/O

Unix I/O

打开文件

一个应用程序通过要求内核打开相应的文件,来宣告它想要访问一个I/O设备.内核返回一个小的非负整数,叫做描述符,它在后续对此文件的所有操作中标识这个文件.内核记录有关这个打开文件的所有信息.应用程序只需记住这个描述符.

Linux shell创建的每个进程开始时都有三个打开的文件: 标准输入(描述符为0),标准输出(描述符为1)标准错误(描述符为2).

改变当前的文件位置

对于每个打开的文件,内核保持着一个文件位置k,初始为0.这个文件位置是从文件开头起始的字节偏移量.应用程序能够通过执行seek操作,显式地设置文件的当前位置为k.

读写操作

一个读操作就是从文件复制n > 0个字节到内存,从当前文件位置k开始,然后将k增加到k + n.给定一个大小为m字节的文件,当k ≥ m时执行读操作会触发一个称为EOF的条件.

类似的,写操作就是从内存复制n > 0个字节到一个文件,从当前文件位置k开始,然后更新k.

关闭文件

关闭文件时,内核释放打开文件时创建的数据结构,并将这个描述符恢复到可用的描述符池中.无论一个进程因为何种原因终止时,内核都会关闭所有打开的文件并释放它们的内存资源.

转载于:https://www.cnblogs.com/agichen/p/10343546.html

你可能感兴趣的:(Unix I/O)