zoukankan      html  css  js  c++  java
  • unix文件操作函数

    1. fopen函数

    1 #include <stdio.h>
    2 FILE *fopen(const char *path, const char *mode)

          返回:文件顺利打开后,指向该流的文件就会被返回。如何文件打开失败则返回NULL,并把错误代码存在 errno 中。

    参数说明:

      mode: 1)r        以只读方式打开文件,该文件必须存在。

            2) r+     以可读写方式打开文件,该文件必须存在。

            3) rb+   以读写打开一个二进制文件,允许读写数据,文件必须存在。

            4) rw+  打开一个文本文件,允许读和写。

                      5) w     打开只写文件,若文件存在则文件长度清为0,即该文件内容消失,若文件不存在则创建该文件。

            6) w+   打开可读写文件,若文件存在则文件长度清为0,即文件文件内容会消失。若文件不存在则创建文件文件。

          7) a     以附加的方式打开只写文件,若文件不存在,则会创建文件文件,如果文件存在,则写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

          8) a+   以附加的方式打开可读写文件。若文件不存在,则会创建该文件,如果文件存在,则写入的数据 会被添加到文件尾,即文件碑的内容会被保留。(原来的EOF符不保留)      

                      9) wb   只写打开或新建 一个二进制文件。只允许写数据。

                      10)wb+ 读写打开或新建一个二进制文件;只允许写数据。

                      11)ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

                      12)at+   打开一个文件文件

     总结:a--append,添加新内容到文件尾,删除原文件的EOF。

                t--打开的文件的类型是文本文件,

                +--表示对文件既可以读也可以写。

                fopen建立的新文件会具有 S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH(0666)权限。

                二进制文件和文本文件的区别:

                1.  在windows系统中,文本模式下,文件以“ ”代表换行,若以文件模式打开文件,并用fputs等函数写入换行符“ ”时,函数会自动在“ ”前面加上" "。即实际写入文件的是“ ”.

                2.  在类UNIX/LINIX系统中文本模式下,文件以“ ”代表换行。所以unix在文本模式和二进制模式下并无区别。

    注意:在文件操作时

      1)在定义文件指针时,要将文件指针指向空;如FILE *fp = NULL;

      2)文件操作完成后,需要将文件关闭,一定要注意,否则会造成文件所占用的内存泄漏和在下次访问时出现问题。

      3)文件关闭后,需要将文件指针指向空。这样做会防止出现游离指针,而对整个工程造成不必要的麻烦;如:fp = NULL;

    1 #include <stdio.h>
    2 int fclose(FILE *steream)
    3 关闭一个流。
    4 注意:使用fclose()函数就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。
  • 相关阅读:
    单表查询和多表连接查询哪个效率更快
    高并发和秒杀系统设计
    微服务框架学习三:服务通信框架介绍
    微服务框架学习一:架构介绍
    微服务框架学习二:Http调用
    支付相关的学习资源
    service mesh学习规划
    智齿客服网页端接入文档V2.3
    VUE请求本地数据的配置json-server
    webpack学习
  • 原文地址:https://www.cnblogs.com/blankqdb/p/3719783.html
Copyright © 2011-2022 走看看