C语言中open函数
时间: 2023-12-01 15:03:36 浏览: 50
C语言中的open函数是用来打开文件的,其函数原型如下:
```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是打开文件的方式和标志,mode是新建文件时的访问权限。
flags的取值有以下几种:
- O_RDONLY:只读方式打开文件。
- O_WRONLY:只写方式打开文件。
- O_RDWR:读写方式打开文件。
- O_CREAT:如果文件不存在则新建文件。
- O_EXCL:与O_CREAT一起使用,如果文件存在则返回错误。
- O_TRUNC:如果文件存在则清空文件内容。
- O_APPEND:在文件末尾追加数据。
mode的取值有以下几种:
- S_IRUSR:用户可读。
- S_IWUSR:用户可写。
- S_IXUSR:用户可执行。
- S_IRGRP:组可读。
- S_IWGRP:组可写。
- S_IXGRP:组可执行。
- S_IROTH:其他用户可读。
- S_IWOTH:其他用户可写。
- S_IXOTH:其他用户可执行。
例如,打开一个只读文件可以这样写:
```c
int fd = open("filename", O_RDONLY);
```
打开一个新建文件并且具有读、写、执行权限可以这样写:
```c
int fd = open("filename", O_CREAT|O_RDWR|O_EXCL, S_IRWXU|S_IRWXG|S_IRWXO);
```