Linux文件系统
2016-11-15 本文已影响0人
jiangxueqiao
概念
在Linux中几乎一切都可以看作文件。that's all.
文件描述符
所有被打开的文件都由文件描述符来引用,文件描述符是一个非负整数。类似windows的HANDLE。
系统启动时,会有3个已经打开的文件描述符:
0: 标准输入
1: 标准输出
2: 标准错误
在<unistd.h>头文件中对这3个常数定义如下:
#define STDIN_FILENO 0
#define STDOUT_FILENO 1
#define STDERR_FILENO 2
系统函数
open
功能
打开或创建文件
声明
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char* pathname, int oflag, ...);
返回
若成功为文件描述符,出错为-1。
参数
pathname:要打开或创建的文件名
oflag: 一个或多个常数进行或运行(这些常数定义在<fcntl.h>中):
- O_RDONLY 只读打开
- O_WRONLY 只写打开
- O_RDWR 读写打开
上面3个常数只能选择一个。 - O_APPEND 追加写
- O_CREATE 文件不存在则创建。使用该选项时要指定第三个参数Mode,说明文件的存取许可权位
- O_EXCL 如果同时指定O_CREATE,而文件已经存在,则出错。
- O_TRUNC 如果此文件存在,而且为只读或只写打开,则将文件长度截断为0
- O_NOCTTY
- O_NONBLOCK
- O_SYNC