文件IO
文件IO
1.函数open和openat
函数原型描述
SYNOPSIS
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
int openat(int dirfd, const char *pathname, int flags);
int openat(int dirfd, const char *pathname, int flags, mode_t mode);
/* Documented separately, in openat2(2): */
int openat2(int dirfd, const char *pathname,
const struct open_how *how, size_t size);
| 错误代码 | 说明 |
|---|---|
| O_RDONLY | 只读方式打开文件 |
| O_WRONLY | 只写方式打开文件 |
| O_RDWR | 读写方式打开文件 |
| O_EXEC | 只执行方式打开文件 |
| O_SEARCH | 只搜索方式打开文件 |
| O_APPEND | 追加方式打开文件 |
| O_CREAT | 如果文件不存在,则创建文件 |
| O_DIRECTORY | 如果文件不是目录,则失败 |
| O_EXCL | 如果文件已存在,则失败 |
| O_NOCTTY | 不将文件分配为控制终端 |

- open()函数用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。
- close()函数用于关闭一个被打开的文件。当一个进程终止时,所有被它打开的文件都由内核自动关闭,很多程序都使用这一功能而不显示地关闭一个文件。
- read()函数用于将从指定的文件描述符中读出的数据放到缓存区中,并返回实际读入的字节数。若返回 0,则表示没有数据可读,即已达到文件尾。读操作从文件的当前指针位置开始。当从终端设备文件中读出数据时,通常一次最多读一行。
- write()函数用于向打开的文件写数据,写操作从文件的当前指针位置开始。对磁盘文件进行写操作,若磁盘已满或超出该文件的长度,则 write()函数返回失败。
- lseek()函数用于在指定的文件描述符中将文件指针定位到相应的位置。它只能用在可定位(可随机访问文件操作中。管道、套接字和大部分字符设备文件是不可定位的,所以在这些文件的操作中无法使用lseek()调用。
函数ioctl
SYNOPSIS
#include <sys/ioctl.h>
int ioctl(int fd, unsigned long request, ...);

浙公网安备 33010602011771号