精华内容
下载资源
问答
  • 在函数开头进行文件读写
    2021-05-13 06:37:52

    相关函数:dup, open, fseek

    头文件:#include    #include

    定义函数:off_t lseek(int fildes, off_t offset, int whence);

    函数说明:

    每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾. 当read()或write()时, 读写位置会随之增加,lseek()便是用来控制该文件的读写位置. 参数fildes 为已打开的文件描述词, 参数offset 为根据参数whence来移动读写位置的位移数.

    参数 whence 为下列其中一种:

    SEEK_SET 参数offset 即为新的读写位置.

    SEEK_CUR 以目前的读写位置往后增加offset 个位移量.

    SEEK_END 将读写位置指向文件尾后再增加offset 个位移量. 当whence 值为SEEK_CUR 或

    SEEK_END 时, 参数offet 允许负值的出现.

    下列是教特别的使用方式:

    1) 欲将读写位置移到文件开头时:lseek(int fildes, 0, SEEK_SET);

    2) 欲将读写位置移到文件尾时:lseek(int fildes, 0, SEEK_END);

    3) 想要取得目前文件位置时:lseek(int fildes, 0, SEEK_CUR);

    返回值:当调用成功时则返回目前的读写位置, 也就是距离文件开头多少个字节. 若有错误则返回-1, errno 会存放错误代码.

    附加说明:Linux 系统不允许lseek()对tty 装置作用, 此项动作会令lseek()返回ESPIPE.

    C语言的fopen函数(文件操作/读写)

    头文件:#include fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:    FILE * fopen(const char * path, c ...

    C语言的f(open)函数(文件操作/读写)

    头文件:#include fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:     FILE * fopen(const char * path, ...

    lseek函数与文件空洞

    在UNIX/LINUX系统中,文件位移量可以大于文件的当前长度,这种情况下向文件中写入数据就会产生文件空洞(hole),这些没写入数据的文件空洞部分默认会被0填满.虽然这些文件空洞并没有实际的数据,但 ...

    C语言整理——文件系统和文件访问

    标准C中规定了文件系统的访问和对文件本身的访问.不管是windows系统或者是泛unix系统,都实现了这些接口.在了解这些知识后,跨平台编程也将非常容易. 对文件系统的访问接口有: chdrive() ...

    linux c编程:文件的读写

    Linux系统中提供了系统调用函数open()和close()用于打开和关闭一个存在的文件 int open(const char *pathname,int flags) int open(cons ...

    C语言fgetpos()函数:获得当前文件的读写指针(转)

    头文件:#includefgetpos()函数获得当前文件的指针所指的位置,并把该指针所指的位置信息存放到pos所指的对象中.pos以内部格式存储,仅由fgetpos() ...

    C语言文件的读写

    对文件的读和写是最常用的文件操作.在C语言中提供了多种文件读写的函数: 字符读写函数  :fgetc和fputc 字符串读写函数:fgets和fputs 数据块读写函数:freed和fwrite 格式 ...

    ubuntu Linux下C语言open函数打开或创建文件与read,write函数详细讲解

    open(打开文件) 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件 #include ...

    C语言中对文件的读写的一些浅显理解

    前述:基于上学期完成的数据结构的课程设计,对于老师的提出要求实现的基础上,自己在使用过程中发现每次打开程序都需要重新输入数据,于是便决定,将文件读写功能加入此次课程设计中,以下是我的一些心得和浅显理解 ...

    随机推荐

    【C语言入门教程】7.5 枚举

    在实际应用中,有的变量只有几种可能取值.如人的性别只有两种可能取值,星期只有七种可能取值.在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型.所谓枚举是指将变量的值一一列举出来,变量只限于列举出 ...

    swing容器继承重绘问题解决

    swing容器继承重绘问题解决   以JPanel为例,继承JPanel,想动态为器更换背景,这就涉及到重绘问题.一下是本人重写代码: package ui; import java.awt.Grap ...

    (原)前端知识杂烩(meta系列)

    更新于 20160831 1. meta 移动端头文件设置 (一般情况下,逐条复制放在头部就可以了) 1.1 强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏 ...

    Nginx之让用户通过用户名密码认证访问web站点

    有时我们会有这么一种需求,就是你的网站并不想提供一个公共的访问或者某些页面不希望公开,我们希望的是某些特定的客户端可以访问. 那么我们可以在访问时要求进行身份认证,就如给你自己的家门加一把锁,以拒绝那 ...

    linux使用常见问题

    出现RTNETLINK answers: File exists 同时出现connect:network is unreachable 和 Determining IP information for ...

    Codeforces Round #520 (Div. 2) D. Fun with Integers

    D. Fun with Integers 题目链接:https://codeforc.es/contest/1062/problem/D 题意: 给定一个n,对于任意2<=|a|,|b|< ...

    LeetCode OJ:Count Complete Tree Nodes(完全二叉树的节点数目)

    Given a complete binary tree, count the number of nodes. Definition of a complete binary tree from W ...

    Hibernate中的对象状态,及自动更新原因,Hibernate set对象后不调用update却自动更新

    原文:http://www.cnblogs.com/xiaoda/p/3225617.html Hibernate的对象有三种状态,分别为:瞬时状态 (Transient). 持久化状态(Persis ...

    JS基础:正则表达式

    简介 正则表达式 (regular expression) 描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串.将匹配的子串做替换或者从某个字符串中取出符合某个条件的子串等.在 JS ...

    更多相关内容
  • C++ 文件读写相关函数

    千次阅读 2019-03-13 14:19:49
    几个C/C++语言文件读写函数 1、打开和关闭文件  (1)打开文件:FILE * fopen(const char *filename, const char *mode)  使用打开文件函数时,我们要提供一个要打开的文件名,这里要提供一个当前用户有...

                        几个C/C++语言文件读写函数

    1、打开和关闭文件

      (1)打开文件:FILE * fopen(const char *filename, const char *mode

      在使用打开文件函数时,我们要提供一个要打开的文件名,这里要提供一个当前用户有权限进行相应mode操作的文件,且应该提供相对应的文件路径(默认路径为当前文件夹)。打开方式mode有很多种,大概有如下几种模式(参考自百度百科的参数介绍,因为我暂时看的这本书没有详细参数介绍,只给出了几种,连接:http://baike.baidu.com/link?url=ZOtXcWvvy4pfUVm37V9GaHymKEKZKxIxMjeTcxSlTxKMcEmx1ZW_MiTH1myZUcG_):

      r:以只读方式打开文件,采用文本模式,文件必须存在;

      rb:以只读方式打开文件,采用二进制模式,文件必须存在;

      r+:以可读写方式打开文件,采用文本格式,文件必须存在;

      r+b:以可读写方式打开文件,采用二进制模式,文件必须存在;(codeblcoks环境使用GCC编译器验证,原百度百科未说明)

      w:以只写方式打开文件,采用文本模式,若文件存在则文件清零,若文件不存在则创立该文件;

      wb:以只写方式打开文件,采用二进制模式,同上;

      w+:以读写方式打开文件,若文件存在则长度清零,若文件不存在则建立该文件。

      w+b:以读写方式打开二进制文件,同上;

      a:以附加方式打开文本文件,只可写,若文件不存在则会创建文件;若文件存在,则会将新内容添加到文件末尾,原文件中内容保留;

      ab:以附加方式打开二进制文件,同上;

      a+:以附加方式打开可读写文本文件,同上;

      a+b:以附加方式打开可读写二进制文件,同上;

      rw+:以读写方式打开一个文本文件;

      其中,r+的读写方式都在文件开头,写入操作会覆盖之前的内容,而w+在文件存在时会创建新文件覆盖之,再写入内容,二a+是从文件末尾开始添加内容。

      (2)关闭文件:int fclose (FILE* stream)

      每个文件打开后都要注意在程序执行的所有可能路径上关闭该文件,因为一个程序所能打开的文件数目是有限的,这点要注意!

    2、fscanf和fprintf读写文件

      函数原型如下:

      int fscanf (FILE *stream, const char *format[, address, ...]);

      int fprintf (FILE *stream, const char *format[, address, ...]);

      两个函数的用法类似C/C++中的scanf和printf,只不过所面向的流对象为文件流,同时,fscanf在读到文件末尾时会返回EOF(End of file),是一个stdio.h中的内置常量。

    3、fgetc和fputc读写文件

      函数原型如下:

      int fgetc(FILE *stream);

      int fputc(int c, FILE *stream);

      使用fgetc读取为文件内容,每次仅读取一个字节的文件,当读到文件末尾时,会返回EOF值;

      fputc会将一个字节的数据写入文件,c是要写入的数据,虽然是int型,但是只有低8位会被写入文件,写入失败会返回EOF值。

    4、fgets和fputs读写文件

      函数原型如下:

      char *fgets (char *s,  int n, FILE *stream);

      int fputs (const char*s, FILE *stream);

      fgets每运行一次,会读取一行数据,包括换行符,放入s中,并加上相应的结尾标志符‘\0’,参数n代表s中最多容纳的字符数(不算‘\0’);而返回的指针和s指向同一内存区域,如果没有数据可以读取,则返回NULL;

      fputs函数向文件流中写入字符串s,但写完s后并不会自动向文件中写入换行符。

    5、fread和fwrite读写文件

      函数原型如下:

      unsigned fread (void *ptr, unsigned size, unsigned n, FILE *stream);

      unsigned fwrite (const void *ptr, unsigned size, unsigned n, FILE *stream);

      fread 函数从文件中读取n个大小为size字节的数据块,放入ptr开始的内存中,返回值为读取的字节数,若一个字节也未读取,返回值为0;

      fwrite函数将从地址ptr开始的n*size个字节的内容写入到文件中,返回值表示成功写入的字节数。

      需要注意的一点就是,fread和fwrite函数读写文件,文件必须用二进制方式打开。

    6、fseek改变文件当前位置

      函数原型如下:

      int fseek (FILE *stream, long offset, int whence);

      作用:函数将与stream关联的文件的“当前位置”设为距whence处offset字节的地方。whence可以有一下三种取值:

      SEEK_SET:文件开头;

      SEEK_CUR:执行本函数前文件的当前位置;

      SEEK_END:文件末尾;

      例如:

      fseek(fp, 200, SEEK_SET);// 将文件当前位置设为距离文件开始位置为200个字节处

      程序示例:

      fread (aStu, sizeof (Student), 7, fpSrc);  // 读取7*sizeof(Student)字节大小数据

      fseek (fpSrc, sizeof (Student) * 20, SEEK_SET);  // 将文件当前位置设为距离开始位置为sizeof(Student)*20个字节处

    展开全文
  • 读写文件文件方法、函数

    千次阅读 2021-02-07 12:39:42
    读写文件#全局申明import codecsENCODEING = "utf-8"打开文件的模式有:r,只读模式(默认)。w,只写模式。【不可读;不存在则创建;存在则删除内容;】a,追加模式。【可读; 不存在则创建;存在则只追加内容;】"+...

    读写文件

    #全局申明

    import codecs

    ENCODEING = "utf-8"

    打开文件的模式有:

    r,只读模式(默认)。

    w,只写模式。【不可读;不存在则创建;存在则删除内容;】

    a,追加模式。【可读; 不存在则创建;存在则只追加内容;】

    "+" 表示可以同时读写某个文件

    r+,可读写文件。【可读;可写;可追加】

    w+,写读

    a+,同a

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

    rb

    wb

    ab

    "x":表示当文件不存在时,创建文件并写入值。当文件存在时,报错

    r,x,w,a r+,x+,w+,a+ 区别:

    7b478fa11439f8960ac7ae9aeecb02e6.png

    文件方法

    #文件对象f常用的操作方法

    #read() 把文件的所有内容都读取出来,返回一个字符串

    #write(data) 把字符串data写入到文件中,只接受字符串参数

    #fr.readline() 每次读取文件一行数据,返回每行的字符串数据

    #fr.readlines() 读取文件内容,返回一个list,每一行是一个元素

    #fr.name 文件名字

    #fr.fileno() 文件描述符

    #fr.close() 关闭文件

    #fr.encoding 文件编码

    #fr.closed 返回bool值, 判断文件是否已经关闭

    #fr.seek(offset, whence) offset偏移量正数向后偏移,负数向前偏移 whence 0 开头,1 现在位置 2 代表结尾

    #fr.tell() 返回文件光标位置

    #fr.truncate(size) 只有写文件才可以用,清空文件,size表示清空到什么地方.

    #help(fr.seek) 控制文件光标,文件需要使用b方式打开,

    按这种方式则不用关闭

    with codecs.open("1.txt", "r", encoding=ENCODEING) as f:

    print(f.read())

    函数

    def 定义函数

    定义完成后需要调用

    def jc(n):

    if n == 0:

    return 1

    else:

    result = 1

    for i in range(1, n+1):

    result *= i

    return result

    def main():

    n = 5

    count = 0

    for i in range(0, n+1):

    count += jc(i)

    print("count = {0}".format(count))

    if __name__ == '__main__':

    main()

    def fun(a,*args,**kwargs):

    print(a,args,kwargs)

    fun(1,2,3,4,5,b=1)

    结果:

    a=1

    args=(2,3,4,5) 元组

    kwargs={'b':1} 字典

    展开全文
  • Linux下文件读写函数的使用最全总结

    千次阅读 2019-11-21 00:11:05
    Linux下文件读写函数的使用总结读、写、追加方式modefopen()函数用法char *fgets(str,n,fp)int fputs(const char *s, FILE *stream);fclose()函数1. 文件的顺序写函数文件的顺序读操作函数文件的随机读写函数 读、...


    注:本文对原文进行了一定的总结,文末已经申明了原文链接。

    读、写、追加方式mode

    r: 读打开, 不创建

    w: 写打开,创建/清空

    a: 写打开, 创建/追加


    r+: 读/写打开,不创建

    w+:读/写打开,创建/清空

    a+:读/写打开, 创建/追加

    衍生:

    rb,rb+,wb,wb+,ab,ab+; 对二进制操作

    rt,rt+,wt,wt+,at,at+; 对文本文件操作

    fopen()函数用法

    #include<stdio.h>
    #include<stdlib.h>
    
    void main()
    {
    FILE *fp;
    char str[16];
    if((fp=fopen("out.dat","rt"))==NULL)
    {
    printf("Cannot open file strike any key exit!");
    exit(1);
    }
    fgets(str,16,fp);
    printf("%s",str);
    fclose(fp);
    }
    

    char *fgets(str,n,fp)

    读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针); 其中的n是一个正整数。表示从文件中读出的字符串不超过 n-1个字符。在读入的最后一个字符后加上串结束标志”。
    例如:fgets(str,n,fp);的意义是从fp所指的文件中读出n-1个字符送入 字符数组str中。

    对fgets函数有两点说明:

    1. 在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束。

    2. fgets函数也有返回值,其返回值是字符数组的首地址。
      实例代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    
    void main()
    {
    char *p;//创建一个字符指针接收fgets()返回值
    FILE *fp;
    char str[16];
    if((fp=fopen("out.dat","rt"))==NULL)//以读文本文件方式打开文件out.dat
    {
    printf("Cannot open file strike any key exit!");
    exit(1);
    }
    p = fgets(str,16,fp);
    printf("p:address=%p\n",p);
    printf("p:=%s\n",p);
    printf("%s",str);
    fclose(fp);
    }
    
    

    int fputs(const char *s, FILE *stream);

    int fputs(const char *s, FILE *stream);
    int puts(const char *s);
    返回值:成功返回一个非负整数,出错返回EOF
    写字符串函数fputs向指定的文件写入一个字符串,puts向标准输出写入一个字符串。
    fputs函数的功能是向指定的文件写入一个字符串,其调用形式为: fputs(字符串,文件指针) 其中字符串可以是字符串常量,也可以是字符数组名, 或指针 变量,例如:
    fputs(“abcd“,fp);
    其意义是把字符串“abcd”写入fp所指的文件之中。
    实例代码如下:

    #include<stdlib.h>
    #include<stdio.h>
    main()
    {
    FILE *fp;
    char ch,st[20];
    if((fp=fopen("string","at+"))==NULL)
    {
    printf("Cannot open file strike any key exit!");
    //getch();
    exit(1);
    }
    printf("input a string:");
    scanf("%s",st);
    fputs(st,fp);
    rewind(fp);
    ch=fgetc(fp);
    while(ch!=EOF)
    {
    putchar(ch);//打印一个字符
    ch=fgetc(fp);/fgetc()函数的功能是从文件指针指定的文件中读入一个字符
    }
    fclose(fp);
    } 
    
    

    fclose()函数

    fclose()函数用来关闭一个由fopen()函数打开的文件 , 其调用格式为:
    int fclose(FILE *stream);
    该函数返回一个整型数。当文件关闭成功时, 返回0, 否则返回一个非零值。可以根据函数的返回值判断文件是否关闭成功。

    1. 文件的顺序写函数

    fprintf()、fputs()和fputc()函数
    函数fprintf()、fputs()和fputc()均为文件的顺序写操作函数, 其调用格式如下:
    int fprintf(FILE *stream, char *format, );
    int fputs(char *string, FILE *steam);
    int fputc(int ch, FILE *steam);

    一个实例囊括以上函数:

     #include<stdio.h>
         main()
         {
              char *s="That's good news"; /*定义字符串指针并初始化*/
              int i=618;                    /*定义整型变量并初始化*/
              FILE *fp;                     /*定义文件指针*/
              fp=fopen("example.dat", "w");    /*建立一个文字文件只写*/
              fputs("Hello  world", fp);/*向所建文件写入一串字符*/
              fputc(':', fp);               /*向所建文件写冒号:*/
              fprintf(fp, "%d\n", i);       /*向所建文件写一整型数*/
              fprintf(fp, "%s", s);         /*向所建文件写一字符串*/
              fclose(fp);                   /*关闭文件*/
         }
    
    

    结果如下:
    在这里插入图片描述

    文件的顺序读操作函数

    fscanf()、fgets()和fgetc()函数
    函数fscanf()、fgets()和fgetc()均为文件的顺序读操作函数, 其调用格式如下:
    int fscanf(FILE *stream, char *format, );
    char fgets(char *string, int n, FILE *steam);
    int fgetc(FILE *steam);
    fscanf()函数的用法与scanf()函数相似, 只是它是从文件中读到信息。 fscanf()函数的返回值为EOF(即-1), 表明读错误, 否则读数据成功。fgets()函数从文件中读取至多n-1个字符(n用来指定字符数), 并把它们放入string指向的字符串中, 在读入之后自动向字符串未尾加一个空字符, 读成功返回string指针, 失败返回一个空指针。fgetc()函数返回文件当前位置的一个字符, 读错误时返回EOF。
    实践代码如下:

      #include<stdio.h>
         main()
         {
              char *s, m[20];
              int i = 2020;
              FILE  *fp;
              fp=fopen("example.dat", "r");    /*打开文字文件只读*/
              fgets(s, 24, fp);             /*从文件中读取23个字符*/
              printf("%s", s);              /*输出所读的字符串*/
              fscanf(fp, "%d", &i);         /*读取整型数*/
              printf("%d", i);              /*输出所读整型数*/
              putchar(fgetc(fp));           /*读取一个字符同时输出*/
              fgets(m, 17, fp);             /*读取16个字符*/
              puts(m);                      /*输出所读字符串*/
              fclose(fp);                   /*关闭文件*/
             
         }
    
    

    结果如下:
    在这里插入图片描述

    文件的随机读写函数

    有时用户想直接读取文件中间某处的信息, 若用文件的顺序读写必须从文件头开始直到要求的文件位置再读, 这显然不方便。Turbo C2.0提供了一组文件的随机读写函数, 即可以将文件位置指针定位在所要求读写的地方直接读写。
    文件的随机读写函数如下:
    int fseek (FILE *stream, long offset, int fromwhere);
    int fread(void *buf, int size, int count, FILE *stream);
    int fwrite(void *buf, int size, int count, FILE *stream);
    long ftell(FILE *stream);
    fseek()函数的作用是将文件的位置指针设置到从fromwhere开始的第offset 字节的位置上, 其中fromwhere是下列几个宏定义之一:
    文件位置指针起始计算位置fromwhere

    符号常数数值含义
    SEEK_SET0 从文件开头
    SEEK_CUR1从文件指针的现行位置
    SEEK_END2从文件末尾

    offset是指文件位置指针从指定开始位置(fromwhere指出的位置)跳过的字节数。它是一个长整型量, 以支持大于64K字节的文件。fseek()函数一般用于对二进制文件进行操作。
    当fseek()函数返回0时表明操作成功, 返回非0表示失败。

     #include<stdlib.h>
     #include<stdio.h>
         main()
         {
    	  char ch;
              FILE *fp;
              if((fp=fopen("example.dat", "r"))==NULL)
                {
                  printf("Can't open file");
                  exit(1);
                }
              fseek(fp,7, SEEK_SET);
              ch = fgetc(fp);
    	  putchar(ch);
              fclose(fp);
         }
    

    结果如下:
    在这里插入图片描述
    说明:第7个偏移量是取到的字符是w,文件的第一个字节偏移量是0.

    fread()函数是从文件中读count个字段, 每个字段长度为size个字节, 并把它们存放到buf指针所指的缓冲器中。

     #include <stdio.h>
       #include <stdlib.h>
         main()
         {
              FILE *fp;
              int dat[100];
              fp=fopen("example.dat", "rb");/*打开一个二进制文件只读*/
              if(fread(dat, sizeof(int), 100, fp)!=100)
                                            /*判断是否读了100个数*/
                {
                   if(feof(fp))
                     printf("End of file"); /*不到100个数文件结束*/
                   else
                     printf("Read error");  /*读数错误*/
              fclose(fp);                   /*关闭文件*/
         }
    }
    

    fwrite()函数是把buf指针所指的缓冲器中, 长度为size个字节的count个字段写到stream指向的文件中去。

    #include <stdio.h>
         main()
         {
              char buf[]={"wohao"};
                             /*定义浮点数组并初始化*/
              int i;
              FILE *fp;
              fp=fopen("test_b999.txt", "wt"); /*创建一个二进制文件只写*/
              fwrite(buf, sizeof(char),5,fp);/*将6个浮点数写入文件中*/
              fclose(fp);                   /*关闭文件*/
         }
    
    

    当用标准文件函数对文件进行读写操作时, 首先将所读写的内容放进缓冲区, 即写函数只对输出缓冲区进行操作, 读函数只对输入缓冲区进行操作。例如向一个文件写入内容, 所写的内容将首先放在输出缓冲区中, 直到输出缓冲区存满或使用fclose()函数关闭文件时, 缓冲区的内容才会写入文件中。若无fclose() 函数, 则不会向文件中存入所写的内容或写入的文件内容不全。有一个对缓冲区进行刷新的函数, 即fflush(), 其调用格式为:
    int fflush(FILE *stream);
    该函数将输出缓冲区的内容实际写入文件中, 而将输入缓冲区的内容清除掉。
    feof()和rewind()函数
    这两个函数的调用格式为:
    int feof(FILE *stream);
    int rewind(FILE *stream);
    feof()函数检测文件位置指示器是否到达了文件结尾, 若是则返回一个非0 值, 否则返回0。这个函数对二进制文件操作特别有用, 因为二进制文件中, 文件结尾标志EOF也是一个合法的二进制数, 只简单的检查读入字符的值来判断文件是否结束是不行的。如果那样的话, 可能会造成文件未结尾而被认为结尾, 所以就必须有feof()函数。
    下面的这条语句是常用的判断文件是否结束的方法。
    while(!feof(fp))
    fgetc(fp);
    while为循环语句, 将在下面介绍。
    rewind()函数用于把文件位置指示器移到文件的起点处, 成功时返回0, 否则, 返回非0值。
    非标准文件函数
    这类函数最早用于UNIX操作系统, ANSI标准未定义, 但有时也经常用到, DOS 3.0以上版本支持这些函数。它们的头文件为io.h。
    一、文件的打开和关闭
    1. open()函数
    open()函数的作用是打开文件, 其调用格式为:
    int open(char *filename, int access);
    该函数表示按access的要求打开名为filename的文件, 返回值文件描述符, 其中access有两部分内容: 基本模式和修饰符, 两者用" "(“或”)方式连接。修饰符可以有多个, 但基本模式只能有一个。access的规定如表3-2。
    表3-2 access的规定基本模式含义

    修饰符含 义
    O_RDONLY只读
    O_APPEND文件指针指向末尾
    O_WRONLY只写
    O_CREAT文件不存在时创建文件,属性按基本模式属性
    O_RDWR读写
    O_TRUNC若文件存在, 将其长度缩为0, 属性不变
    O_BINARY打开一个二进制文件
    O_TEXT打开一个文字文件

    open()函数打开成功, 返回值就是文件描述字的值(非负值), 否则返回-1。

    1. close()函数
      close()函数的作用是关闭由open()函数打开的文件, 其调用格式为:
      int close(int handle);
      该函数关闭文件描述字handle相连的文件。

    二、读写函数

    1. read()函数
      read()函数的调用格式为:
      int read(int handle, void *buf, int count);
      read()函数从handle(文件描述字)相连的文件中, 读取count个字节放到buf 所指的缓冲区中, 返回值为实际所读字节数, 返回-1表示出错。返回0 表示文件结束。

    2. write()函数
      write()函数的调用格式为:
      int write(int handle, void *buf, int count);
      write()函数把count个字节从buf指向的缓冲区写入与handle相连的文件中, 返回值为实际写入的字节数。

    3. create()函数
      create函数也能打开一个文件,如果文件不存在,则创建它。和open一样,creat也在调用成功后返回一个文件描述符,如果失败,则设置errno变量并返回-1.

    creat的原型为:

    int creat (const char *pathname,mode_t mode);
    实例如下:

    create("wen.txt",666);
    

    他等价于:

    open(pathname,O_CREAT | O_TRUNC | O_WRONLY,mode);

    在使用完某个函数后要关闭他,使用 close函数。close只有一个参数,即open返回的文件描述符.

    close的原型为:

              #include <unist.d>
    
               int close(int fd);    
    

    三、随机定位函数

    1. lseek()函数
      lseek()函数的调用格式为:
      int lseek(int handle, long offset, int fromwhere);
      该函数对与handle相连的文件位置指针进行定位, 功能和用法与fseek() 函数相同。

    2. tell()函数
      tell()函数的调用格式为:
      long tell(int handle);
      该函数返回与handle相连的文件现生位置指针, 功能和用法与ftell()相同。
      原文链接:https://blog.csdn.net/zwt0112/article/details/54582036

    展开全文
  • 如何PHP中读写文件

    2021-01-21 15:23:42
    PHP中读写文件,可以用到一下内置函数: 1.fopen(创建文件和打开文件) 语法: fopen(filename,mode) filename,规定要打开的文件。mode,打开文件的模式,可能的值见下表。 mode 说明 “r” 只读...
  • 文件读写操作:内置open()函数 Python中的open() 方法是用于打开一个文件,如果该文件损坏或者无法打开,会抛出 OSError 完整语法格式: open(file, mode=‘r’, buffering=None, encoding=None, errors=None, ...
  • 常用的文件读写函数

    千次阅读 2017-12-12 10:03:10
    一、函数原型 ...path:文件路径 mode:打开方式 打开成功函数返回目标文件文件指针,否则返回空指针 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); ptr:保存数据的指针 siz
  • PHP中读写文件,可以用到一下内置函数: 1.fopen(创建文件和打开文件) 语法: 复制代码 代码如下:fopen(filename,mode) filename,规定要打开的文件。mode,打开文件的模式,可能的值见下表。 mode 说明...
  • MATLAB——读写文件函数命令汇总

    千次阅读 2020-02-16 10:06:49
    (1)写入excel文件:xlswrite()函数 常用语句为:xlswrite(filename,Data,sheet,Range) 其中:filename表示文件名称;Data表示待写入的数据、文本;sheet表示写入excel中的工作表标签;Range表示工作表中的指定...
  • 头文件:#includerewind()函数用于将文件指针重新指向文件开头,同时清除和文件流相关的错误和eof标记,相当于调用fseek(stream, 0, SEEK_SET),其原型如下:void rewind(FILE * stream);【参数】stream为以打开...
  • 文件操作函数(三)—— 文件的随机读写

    千次阅读 多人点赞 2021-03-20 16:10:36
    文章目录 前言 fseek函数 ftell函数 rewind函数 拓:用fseek函数与ftell函数文件大小 前言 在文件操作函数(二)中,我们介绍了文件的顺序读写函数,即挨着顺序对文件中的数据进行输入或输出操作的函数。...
  • python函数基础与文件操作

    千次阅读 2021-01-29 11:38:11
    函数的定义函数是通过赋值传递的,参数通过赋值传递给函数。def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下:1 def function_name(arg1,arg2[,...]):2 statement3 [return value]返回值...
  • fflush()函数将清除由stream指向的文件缓冲区里的内容,常用于写完一些数据后,立即用该函数清除缓冲区,以免误操作时,破坏原来的数据。 flushall()将清除所有打开文件所对应的文件缓冲区。(2).设置文件缓冲区函数...
  • Python中文件读写,定位文件读写的指针会随着不断的读写移动。那额如何将读写指针进行移动到特定位置进行读写呢? 1.使用tell()函数来查看文件定位指针的位置 #1.创建文件,往文件里写入数据,注意W+是写读模式 fl...
  • 前面介绍的文件读写函数都是顺序读写,即读写文件只能从头开始,依次读写各个数据。但实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写。这种读写方式称为随机...
  • 函数说明:setpwent()用来将getpwent()的读写地址指回密码文件开头。 范例 #include #include main() { struct passwd *user; int i; for(i = 0; i < 4; i++) { user = getpwent(); printf(%s :%d
  • 文件操作函数(二)—— 文件的顺序读写

    千次阅读 多人点赞 2021-03-18 21:56:39
    在文件操作函数(一)中,我们已经学会了怎样正确地打开和关闭一个文件,即我们已经学会了一件事的开头和结尾,不要以为已经结束了,这才刚刚开始,真正重要的是打开了文件后,如何操作文件中的数据(输入数据和输出...
  • Python的文件是一个重要的对象,使用open()函数来打开文件,创建文件对象,进行文件读写操作。当数据用于交换信息时,通常需要把数据保存为有格式的文本数据,可以保存为有特定的行分隔符和列分隔符的数据,这可以...
  • Python读写文件

    千次阅读 2021-01-15 00:11:42
    给要打开的文件对象指定一个名字,这样可完成操作之后迅速关闭文件,防止一些无用的文件对象占用内存Python读写文件的五大步骤一、打开文件Python读写文件在计算机语言中被广泛的应用,如果你想了解其应用的程序,...
  • C++ 文件的随机读写

    千次阅读 2021-05-21 04:16:55
    C++ 文件的随机读写.
  • 使用pandas进行文件读写

    千次阅读 2021-03-04 07:40:33
    pandas是数据分析的利器,既然是处理数据,首先要做的当然是从文件中将数据读取进来。...此外,还支持SQL数据库文件读写日常开发中,最经典的使用场景就是处理csv,tsv文本文件和excel文件了。对于不同格...
  • C语言文件读写操作(详解)

    万次阅读 多人点赞 2020-07-21 23:02:51
    数据流和缓冲区是什么?文件类型和文件存取方式都有啥? 数据流 就C程序而言,从程序移进,移出字节,这种字节流就...当使用标准I/O函数(包含头文件stdio.h中)时,系统会自动设置缓冲区,并通过数据流来读写文件。当
  • python文件读写

    千次阅读 2021-02-03 13:30:00
    打开文件file_object = open(file_name, access_mode='r', buffering=-1)功能:打开一个文件,返回一个文件对象。参数:file_name 文件名;access_mode 打开文件的方式,如果不写默认为‘r’buffering = 1表示有1行...
  • 文件读写(Linux)

    千次阅读 2022-03-20 21:42:53
    使用c/c++语言实现文件读写,现有三种方式 1、Linux系统文件操作 2、c语言标准输入输出 3、c++文件输入输出流 一、Linux系统文件操作 二、c语言标准输入输出 1、头文件<stdio.h> 2、函数接口 1、打开...
  • 【C】C语言文件(包括:文件各种读写方式)

    万次阅读 多人点赞 2018-05-09 09:52:32
    文件概述 文件是指存储外部存储器上的数据集合。更准确的来说,文件就是一组...ASCII文件(文本文件):以字符的方式进行存储,一个字符对应一个ASCII码,而一个ASCII码占用1字节。例如:整数12内存中占用4个字...
  • Python3 文件读写

    千次阅读 2021-07-14 23:03:10
    上面是一个最简单的打开文件的例子,其中传入文件名时需要将文件所在的绝对路径写上,如果不写则默认会当前运行Python环境的目录下去寻找该文件,如果文件此处,那程序将会报错。 上面说到如果文件不存在,...
  • C语言文件读写函数详解

    千次阅读 多人点赞 2016-03-24 12:40:54
     fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILR指针。  参数filename指向要打开的文件名,mode表示...
  • 文件操作及常见文件操作函数使用

    千次阅读 多人点赞 2021-03-14 16:08:16
    但是程序设计中,我们一般谈的文件有两种:程序文件、数据文件 程序文件 : 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀 为.exe). 数据文件 : 文件的内容不一定是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,307
精华内容 32,522
热门标签
关键字:

在函数开头进行文件读写