• 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;
    }
    ​
     
  • 相关阅读:
    重定向输出流实现程序日志
    为新员工分配部门
    从控制台接收输入的身份证号
    判断某一年是否为闰年
    linux重置mysql密码(root权限)
    mysql按照字符串类型的数值按数值进行排序
    android 下拉刷新
    android studio gradle 配置
    搭建自己的iOS内测分发平台
    http_range说明
  • 原文地址:https://www.cnblogs.com/kmist/p/10632297.html
Copyright © 2020-2023  润新知