1.文件IO基础概念
linux“一切皆是文件”,
1.1Linux中文件的分类
Linux中文件共分为7类,他们的作用各不相同,他们的后缀也不同,在开发编程中基本都会遇到
(1)普通文件(-)(regular):最常使用的一类文件,按照其内部结构又可分为纯文本文件(ASCII)、二进制文件(binary)、数据格式的文件(data)、各种压缩文件。
(2)目录文件(d)(directory):用于存放文件名以及其相关信息的文件,是内核组织文件系统的基本节点。
(3)管道文件(p)(pipe):用于不同进程的信息传递。
(4)套接字文件(s)(socket):通常用在网络数据连接。
(5)链接文件(l)(link):指向一个真实存在的文件链接,类似于Windows下的快捷方式。
(6)字符设备文件(c)(character):串行端口的接口设备,例如键盘、鼠标等等。
(7)块设备文件(b)(block):存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。
1.3文件描述符
文件描述就是已经打开的文件的索引(file descriptor),后续的读写操作都是要拿到这个索引,才可以对文件进行读写。
2.文件操作
2.1打开文件open
要对一个文件进行操作,首先必须“打开”它,打开两个字之所以加上冒号,是因为这是代码级别的含义,并非图形界面上所理解的“双击打开”一个文件。
2.2关闭文件close
系统调用close( )相对来讲简单得多,只需要提供已打开的文件描述即可。一般来讲,当我们使用完一个文件之后,需要及时对其进行关闭,以防止内核为继续维护它而付出不必要的代价。
2.3读文件read