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;
    }
    ​
     
  • 相关阅读:
    PyQt作品 – PingTester – 多点Ping测试工具
    关于和技术人员交流的一二三
    Pyjamas Python Javascript Compiler, Desktop Widget Set and RIA Web Framework
    Hybrid Qt applications with PySide and Django
    pyjamas build AJAX apps in Python (like Google did for Java)
    PyQt 维基百科,自由的百科全书
    InfoQ:请问为什么仍要选择Java来处理后端的工作?
    Eric+PyQt打造完美的Python集成开发环境
    python select module select method introduce
    GUI Programming with Python: QT Edition
  • 原文地址:https://www.cnblogs.com/kmist/p/10632297.html
Copyright © 2011-2022 走看看