linux文件操作篇 (二) 打开和关闭文件
2.1 打开文件和关闭文件
#include <sys/types.h> |
头文件 |
int open(const char *pathname, int flags); | 打开一个文件 |
int close(int fildes); | 关闭一个文件 |
1.打开文件
int open(const char *pathname, int flags); //const char *pathname 是要打开的文件路径 //int flag 是文件打开的标志 。 标志有 主标志 和 副标志 。
// 主标志是互斥的。三选一 // O_RDONLY 只读方式打开 // O_RDWR 读写方式打开 // O_WRONLY 只写方式打开
// 副标志可以多选 // O_APPEND 读写文件从文件末尾处追加 // O_TRUNC 若文件存在并可写,则用清空的方式打开文件 // O_CREAT 若文件不存在,则创建该文件 // O_EXCL ?? // 如果用O_CREAT 方式创建不存在的文件, open则需要额外设置文件权限 int open(const char *pathname, int flags, mode_t mode); //mode_t mode 用0755 或者其他权限写入即可 .
//创建文件的另一个函数,用法同open int creat(const char* pathname, mode_t mode);
2.关闭文件
// 在使用完文件后,必须正常关闭文件!! close(int fildes);
举个栗子:
/* ============================================================================ Name : hello.c Author : Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */ #include <stdio.h> #include <stdlib.h> #include <fcntl.h> //open #include <unistd.h> //close int main(void) { int fd; const char* file="./hello"; //当前文件夹下的hello文件 fd=open(file, O_RDWR); //先以读写方式打开 if(fd<0) //如果该文件不存在,打开失败了 { puts("no such file ."); fd=open(file,O_RDWR|O_CREAT,0755); //就加入创建副属性 if(fd<0) { puts("open file err !"); return-1; } } puts("open file success ."); close(fd); //最后记得关闭文件流 puts("close file success ."); return 0; }