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;
    }
    ​
     
  • 相关阅读:
    calc, support, media各自的含义及用法?
    vuex有哪几种属性
    vue-router实现路由懒加载( 动态加载路由 )
    vue生命周期的理解
    vue初始化页面闪动问题
    .params和query的区别
    实现布局数据渲染以列为单位
    一. async函数
    一. includes
    十五. 对象的扩展
  • 原文地址:https://www.cnblogs.com/kmist/p/10632297.html
Copyright © 2011-2022 走看看