zoukankan      html  css  js  c++  java
  • C/C++以及Linux文件操作备忘录

    C文件操作

    #include<stdio.h>
    stdin, stdout, stderr
    

    文件开关

    /*
    ** r/rb   只读。     不存在返回NULL,打开成功不会清空文件
    ** w/wb   只写。     不存在创建,    打开成功后清空文件
    ** a/ab   只写。     不存在创建,    打开成功不会清空文件
    ** r+/rb+ 读写兼备。 不存在返回NULL,打开成功不会清空文件
    ** w+/wb+ 读写兼备。 不存在创建,    打开成功后清空文件
    ** a+/ab+ 允许读取。 不存在创建,    打开成功不会清空文件。
    */
    FILE* fopen(char* fname, char* mode);
    
    int fclose(FILE* fp);
    

    文件读写

    • 单字符
    // @brief 返回读取的单个字符ASCII码
    int fgetc(FILE* fp);
    
    // @brief 向文件中写入一个字符。
    // @return int 失败 -1, 成功写入的ASCII码值
    int fputc(char ch, FILE* fp);
    
    • 单行
    // @brief 最多count-1个字符,第count个字符是''.读取过程遇到'
    '会提前结束
    // @ return buf所指向的空间地址
    char* fgets(char* buff, int count, FILE* fp);
    
    // @brief 将ch参数''之前的部分写入文件
    // @return 错误EOF,成功0
    int fputs(const char* ch, FILE* fp);
    
    // @brief 二进制形式读取
    // @param buff 空间存储地址
    // @param size 每个数据项的字节数
    // @param count 读取的数据项个数
    // @param fp 文件指针
    // @return 读取的数据字节数
    size_t fread(void* buff, size_t size, size_t count, FILE* fp);
    
    // @brief 二进制形式写入
    size_t fwrite(const void* buff, size_t size, size_t count, FILE* fp);
    
    • 文件随机读写
    // @brief 获取文件指针当前位置
    // @return 文件位置指针距离文件开头的字节数。不存在或有错误返回-1L
    long ftell(FILE* fp);
    
    // @brief 以origin为基准偏移offset
    // @param origin SEEK_SET 0 文件从开头偏移
    //               SEEK_CUR 1
    //               SEEK_END 2
    // @return 成功0 错误-1
    int fseek(FILE* fp, long offset, int origin);
    
    // @brief 指针移动到文件开头
    void rewind(FILE* fp);
    

    C++文件操作

    c++三种IO:iostream,fstream,sstream

    #include <fstream>
    fstream ofstream ifstream
    

    Linux文件操作

    打开

    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    int open(const char* pathname, int flags);
    int open(const char* pathname, int flags, mode_t mode);
    

    flags: O_RDONLY O_WRONLY O_RDWR
    mode:创建文件时使用

  • 相关阅读:
    向对象(OO)程序设计
    gVim安装vim-template插件后提示Undefined variable vim_template_subtype/Press ENTER or type command to continue
    基于JQuery easyui,gson的批量新增/修改和删除-servlet版
    Java正则表达式-匹配正负浮点数
    自己写的ORM工具
    秋色园学习测试项目
    把aspx页面生成的cs文件放到其他类库中,以实现对其的封装操作.
    杭州蚂蚁中台技术部-22届应届生-校招实习
    博客园开博
    开发随手记
  • 原文地址:https://www.cnblogs.com/pusidun/p/12298103.html
Copyright © 2011-2022 走看看