Linux文件IO操作包括打开(open),创建(create),读(read),写(write)
打开open
- int open(const char *path, int oflags);
- int open(const char *path, int oflags,mode_t mode);
- 参数path表示:路径名或者文件名。路径名为绝对路径名。
- 参数oflags表示:打开文件所采取的动作
- O_RDONLY文件只读;O_WRONLY文件只写;O_RDWR文件可读可写;O_CREAT访问该文件时若没有则创建
- O_NOCTTY如果路径指向终端,则不将设备作为此进程的控制终端
- O_NDELAY非阻塞方式操作文件
- mode表示:设置创建文件的权限。权限的宏定义很麻烦,可以直接用数
字替代,例如0777; - 返回值:出错返回-1;否则返回文件句柄
创建文件creat
- int creat(const char * pathname, mode_t mode);
- 参数path表示:路径名或者文件名。路径名为绝对路径名。
- 参数oflags表示:打开文件所采取的动作
- O_RDONLY文件只读;O_WRONLY文件只写;O_RDWR文件可读可写
写文件write
- 关闭文件close函数:
- int close(int fd);
- 写文件write函数:
- ssize_t write(int fd, const void *buf, size_t count);
- 参数fd表示:使用open 函数打开文件之后返回的句柄
- 参数*buf表示:写入的数据
- 参数count表示:最多写入字节数
- ssize_t 是数据类型,在32位机器上等同与int,在64位机器上等同与long int
- void perror(const char *str),输出错误信息,str – 这是 C 字符串,包含了一个自定义消息,将显示在原本的错误消息之前。
读文件read
- ssize_t read(int fd,void *buf,size_t len);
- 参数fd:使用open 函数打开文件之后返回的句柄
- 参数*buf:读出的数据保存的位置
- 参数len:每次最多读len 个字节
- 返回值:错误返回-1,执行成功返回实际读取值