zoukankan      html  css  js  c++  java
  • 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;
    }
    ​
     
  • 相关阅读:
    three.js_ "Failed to execute 'texImage2D' on 'WebGLRenderingContext': tainted canvases may not be loded."
    three.js为何如此奇妙
    npm install ERR! code E400/E404
    小程序_请求封装network
    css_input[checked]复选框去掉默认样式并添加新样式
    【CSS】凹槽的写法
    剑指Offer_编程题_6
    剑指Offer_编程题_5
    剑指Offer_编程题_4
    剑指Offer_编程题_3
  • 原文地址:https://www.cnblogs.com/kmist/p/10632297.html
Copyright © 2011-2022 走看看