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()函数就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。
  • 相关阅读:
    UVA10765图论+点-双连通分量性质应用
    LA4287图论+ 有向图SCC+缩点
    LA5135图论+ 割点性质运用
    LA2572计算几何+离散化+面的覆盖
    LA2402暴力枚举+计算几何+四边形面积
    UVA10566计算几何+相似三角形比例函数+二分范围的辨析
    UVA11300计算几何:正n边形内的最长的线
    UVA11524平面几何+二分法+海伦公式
    LA4986三分法求出凹性函数最小值+计算几何
    胜利大逃亡--hdu --1253(bfs)
  • 原文地址:https://www.cnblogs.com/blankqdb/p/3719783.html
Copyright © 2011-2022 走看看