Linux 下的 C 编程实战(二)
――文件系统编程
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);