linux的open函数
时间: 2024-01-01 21:06:08 浏览: 73
在 Linux 操作系统中,open() 函数用于打开文件或创建新文件,并返回一个文件描述符(file descriptor)。它的函数原型如下:
```c
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
```
第一个参数 `pathname` 是文件路径名,可以是相对路径或绝对路径。
第二个参数 `flags` 是文件打开方式,可以有以下选项:
- `O_RDONLY`:以只读方式打开文件;
- `O_WRONLY`:以只写方式打开文件;
- `O_RDWR`:以读写方式打开文件;
- `O_CREAT`:如果文件不存在则创建文件;
- `O_TRUNC`:如果文件存在并且以写方式打开,则将文件长度截断为 0;
- `O_EXCL`:如果同时指定了 `O_CREAT`,并且文件已经存在,则打开文件失败;
- `O_APPEND`:以追加方式打开文件,每次写操作都写入文件末尾。
第三个参数 `mode` 是文件权限,只有在创建文件时才有效,可以有以下选项:
- `S_IRUSR`:用户可读;
- `S_IWUSR`:用户可写;
- `S_IXUSR`:用户可执行;
- `S_IRGRP`:组可读;
- `S_IWGRP`:组可写;
- `S_IXGRP`:组可执行;
- `S_IROTH`:其他人可读;
- `S_IWOTH`:其他人可写;
- `S_IXOTH`:其他人可执行。
函数返回值为文件描述符,如果出现错误则返回 -1。
阅读全文