linux open函数
时间: 2023-09-10 17:15:22 浏览: 100
open函数是Linux下文件操作中的一个函数,其作用是打开一个文件并返回其文件描述符。其语法如下:
```c
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *path, int flags);
int open(const char *path, int flags, mode_t mode);
```
其中,第一个参数path表示文件路径,第二个参数flags表示打开文件的方式和权限,第三个参数mode表示打开文件时的文件权限。
open函数返回一个整型值,即文件描述符。这个文件描述符可以用于后续的文件操作,如读写操作。如果打开文件失败,则返回-1。
常用的flags参数包括:
- O_RDONLY:只读方式打开文件
- O_WRONLY:只写方式打开文件
- O_RDWR:读写方式打开文件
- 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:其他用户执行权限
例如,下面的代码演示了如何使用open函数打开一个文件:
```c
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
int fd = open("file.txt", O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
if (fd == -1)
{
perror("open");
return -1;
}
char buf[] = "Hello, world!\n";
if (write(fd, buf, sizeof(buf)) == -1)
{
perror("write");
return -1;
}
close(fd);
return 0;
}
```
上面的代码打开一个名为file.txt的文件,如果文件不存在则创建,以只写方式打开,同时设置文件权限为用户读写权限。然后向文件中写入一行字符串,并关闭文件。
阅读全文