linux文件操作篇 (二) 打开和关闭文件

2.1 打开文件和关闭文件

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.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;
}
​
 
原文地址:https://www.cnblogs.com/kmist/p/10632297.html