Ubuntu C语言高级I/O函数用法:fopen、freopen、fdopen、fclose、fgetc、fputc、fgets、fread、fwrite、fseek、feof、strncpy

FILE *fopen(const char *pathname, const char *type);

        功能:打开流。在Linux系统调用函数(低级I/O)打开一个文件时,返回一个整数文件描述符,然后该文件描述符就用于后续的I / O操作。对于标准I / O库(ANSIC标准C语言库函数,高级I / O),它们的操作是围绕流(stream)进行的。

        头文件:stdio.h

        pathname:为一个const char*类型的参数,即一个指向字符类型变量的指针,字符类型变量用于存放文件路径

        type:为一个const char*类型的参数,即一个指向字符类型变量的指针。该参数值为:"r"时,表示操作文件只读;"w"时表示操作文件只写;"r+"、"a+"时表示操作文件读写。

        return:若成功则返回文件指针(流),一个指向FILE对象的指针。该对象通常是一个结构体,它包含了I / O库为管理该流所需要的所有信息:用于实际I / O的文件描述符,指向流缓存的指针,缓存的长度,当前在缓存中的字符数,出错标志等等。应用程序没有必要检验FILE对象。若出错则为NULL。

FILE *freopen(const char *pathname, const char *type, FILE *fp);

        功能:在一个特定的流上(由f p指示)打开一个指定的文件(其路径名由pathname 指示),如若该流已经打开,则先关闭该流。此函数一般用于将一个指定的文件打开为一个预定义的流:标准输入、标准输出或标准出错,即使这些标准流重定向到pathname指向的文件,使用标准输入输出函数时便不会从标准输入流读取数据。

        头文件:stdio.h

        pathname:为一个const char*类型的参数,即一个指向字符类型变量的指针,字符类型变量用于存放文件路径

        type:为一个const char*类型的参数,即一个指向字符类型变量的指针。该参数值为:"r"时,表示操作文件只读;"w"时表示操作文件只写;"r+"、"a+"时表示操作文件读写。

        fp:文件指针(流),一个指向FILE对象的指针

        return:若成功则为文件指针(流),一个指向FILE对象的指针。该对象通常是一个结构体,它包含了I / O库为管理该流所需要的所有信息:用于实际I / O的文件描述符,指向流缓存的指针,缓存的长度,当前在缓存中的字符数,出错标志等等。应用程序没有必要检验FILE对象。若出错则为NULL。

FILE *fdopen(int filedes, const char *type);

        功能:取一个现存的文件描述符(我们可能从open , dup , dup2 , fcntl或pipe函数得到此文件描述符),并使一个标准的I / O流与该描述符相结合。此函数常用于由创建管道和网络通信通道函数获得的描述符。因为这些特殊类型的文件不能用标准I/O fopen函数打开,首先必须先调用设备专用函数以获得一个文件描述符,然后用fdopen使一个标准I / O流与该描述符相结合。

        头文件:stdio.h

        filedes:为一个int类型的参数,该参数为打开文件的文件描述符

        type:为一个const char*类型的参数,即一个指向字符类型变量的指针。该参数值为:"r"时,表示操作文件只读;"w"时表示操作文件只写;"r+"、"a+"时表示操作文件读写。

        return:若成功则为文件指针(流),一个指向FILE对象的指针。该对象通常是一个结构体,它包含了I / O库为管理该流所需要的所有信息:用于实际I / O的文件描述符,指向流缓存的指针,缓存的长度,当前在缓存中的字符数,出错标志等等。应用程序没有必要检验FILE对象。若出错则为NULL。

int fclose(FILE *fp);

        功能:关闭一个标准流

        头文件:stdio.h

        fp:文件指针(流),一个指向FILE对象的指针

        return:为一个int类型的参数,若成功则为0,若出错则为EOF。EOF 的值通常为 -1,但它依系统有所不同

int fgetc(FILE *fp);

        功能:从流中读入一个字符

        头文件:stdio.h

        fp:文件指针(流),一个指向FILE对象的指针

        return:为一个int类型的参数,若成功则为一个字符,若已到文件尾端或出错则为EOF。EOF 的值通常为 -1,但它依系统有所不同

int fputc(int c, FILE *fp);

        功能:向流中输出一个字符

        头文件:stdio.h

        fp:文件指针(流),一个指向FILE对象的指针

        return:为一个int类型的参数,若成功则为c,若出错则为EOF。EOF 的值通常为 -1,但它依系统有所不同

char *fgets(char *buf, int n, FILE *fp);

        功能:读取长度为n-1的字符串

        头文件:stdio.h

        buf:为一个指向字符类型变量(字符数组名)的指针,该字符数组存放从流中读取的字符串

        n:为一个int类型的参数,表示读取的字符串的长度为n-1

         fp:要读取的流,一个指向FILE对象的指针

        return:若成功则返回buf,一个指向字符类型变量(字符数组名)的指针,字符数组存储读取到的n-1个字符;若已处文件尾端或出错则为NULL

size_t  fread(void *ptr, size_t size, size_t nobj, FILE *fp);

        功能:以二进制形式读取

        头文件:stdio.h

        ptr:指向无类型的指针,本函数中指向读取到的二进制

        size:为一个size_t类型的参数,表示要读取的字节的个数

        nobj:为一个size_t类型的参数,表示要读取的数据帧的个数(一个数据帧长度为size)

        fp:要读取的流,一个指向FILE对象的指针

        return:为一个size_t类型的参数,表示读取的对象的个数

size_t  fwrite(const void *ptr, size_t size, size_t nobj, FILE *fp);

        功能:以二进制形式写入

        头文件:stdio.h

        ptr:指向无类型的指针,本函数中指向要写入的二进制

        size:为一个size_t类型的参数,表示要写入的字节的个数

        nobj:为一个size_t类型的参数,表示要写入的数据帧的个数(一个数据de帧长度为size)

        fp:要写入的流,一个指向FILE对象的指针

        return:为一个size_t类型的参数,表示要写入的对象个数

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

        功能:将文件指针fp从whence处移动offset个字节

        头文件:stdio.h

         fp:要操作的文件

        offset:偏移量,单位为字节。offset<0表示向左移,offset>0表示向右移

        whence:起始点,只有三个选项:SEEK_SET表示文件开头;SEEK_CUR表示当前位置;SEEK_END表示文件末尾

        return:若成功则为0,若出错则为非0(-1)

int feof(FILE *STREAM);

        功能:检测流上的文件结束符

        头文件:stdio.h

        stream:待检测的流,一个指向FILE对象的指针。

        return:如果文件结束,则返回非0值;否则返回0,文件结束符只能通过调用clearerr(STREAM)函数置为0。

char *strncpy(char *destin, char *source, int maxlen);

        功能:复制source中的字符串(字符,数字、汉字....)到destinin中,复制字符的个数由maxlen的值决定。如果source的前maxlen个字符不含NULL字符,则source中的字符串不会以NULL字符结束。如果maxlen<source的长度,只是将source的前maxlen个字符复制到destinin的前maxlen个字符,不自动添加'\0',也就是destinin不包括'\0',需要再手动添加一个'\0'。如果source的长度小于maxlen个字节,则以NULL填充destinin直到复制完maxlen个字节。

        头文件:string.h

        destinin: 指向存储复制内容的字符数组

        source:指向待复制的字符数组

        maxlen:要复制的字符串的长度

        return:destin

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值