background image

               Linux 下的 编程实战(二)

――文件系统编程

1.Linux 文件系统

      Linux 支持多种文件系统,如
ext、ext2、minix、iso9660、msdos、fat、vfat、nfs 等。在这些具体文件系统的
上层,Linux 提供了虚拟文件系统(VFS)来统一它们的行为,虚拟文件系统
为不同的文件系统与内核的通信提供了一致的接口。

      在 Linux 平台下对文件编程可以使用两类函数:(1)Linux 操作系统文
件 API;(2)C 语言 I/O 库函数。    前者依赖于 Linux 系统调用,后者实际上
与操作系统是独立的,因为在任何操作系统下,使用 C 语言 I/O 库函数操作文
件的方法都是相同的。本章将对这两种方法进行实例讲解。

2.Linux 文件 API

Linux 的文件操作 API 涉及到创建、打开、读写和关闭文件。

创建

int creat(const char *filename, mode_t mode);

参数 mode 指定新建文件的存取权限,它同 umask 一起决定文件的最终

权限(mode&umask),其中 umask 代表了文件在创建时需要去掉的一些
存取权限。umask 可通过系统调用 umask()来改变:

int umask(int newmask);

该调用将 umask 设置为 newmask,然后返回旧的 umask,它只影响读、

写和执行权限。

打开

int open(const char *pathname, int flags); 

int open(const char *pathname, int flags, mode_t mode);