Linux 标准IO操作函数fopen fclose fread fwrite fgetc fputc fgets fputs

本文主要是介绍Linux 标准IO操作函数fopen fclose fread fwrite fgetc fputc fgets fputs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

昨天我分享了Linux文件系统调用的一些函数,是不带缓存的,一般是底层调用,今天来分享下上层的标准IO操作函数,也就是跨平台的,一般以f开头
1 fopen
函数原型 FILE * fopen(const char *path,cost char *mode)

作用:打开一个文件,返回指向该文件的指针

参数说明:第一个参数为欲打开文件的文件路径及文件名,第二个参数表示对文件的打开方式

注:mode有以下值:

r:只读方式打开,文件必须存在

r+:可读写,必须存在

rb+:打开二进制文件,可以读写

rt+:打开文本文件,可读写

w:只写,文件存在则文件长度清0,文件不存在则建立该文件

w+:可读写,文件存在则文件长度清0,文件不存在则建立该文件

a:附加方式打开只写,不存在建立该文件,存在写入的数据加到文件尾,EOF符保留

a+:附加方式打开可读写,不存在建立该文件,存在写入的数据加到文件尾,EOF符不保留

wb:打开二进制文件,只写

wb+:打开或建立二进制文件,可读写

wt+:打开或建立文本文件,可读写

at+:打开文本文件,可读写,写的数据加在文本末尾

ab+:打开二进制文件,可读写,写的数据加在文件末尾

由mode字符可知,上述如r、w、a在其后都可以加一个b,表示以二进制形式打开文件

返回值:文件打开了,返回一个指向该打开文件的指针(FILE结构);文件打开失败,错误上存error code(错误代码)

2 fclose
函数原型:int fclose(FILE *stream)

功能:关闭一个文件流,使用fclose就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区

3 fread
函数原型:size_t fread(void* buff,size_t size,size_t count,FILE* stream)

作用:从文件中读入数据到指定的地址中

参数:第一个参数为接收数据的指针(buff),也即数据存储的地址

第二个参数为单个元素的大小,即由指针写入地址的数据大小,注意单位是字节

第三个参数为元素个数,即要读取的数据大小为size的元素个素

第四个参数为提供数据的文件指针,该指针指向文件内部数据

返回值:读取的总数据元素个数

4 fwrite
函数原型:size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream )

作用:写入数据到指定的文件流中

参数:第一个参数为接收数据的指针(buff),也即数据存储的地址

第二个参数为单个元素的大小,即由指针写入地址的数据大小,注意单位是字节

第三个参数为元素个数,即要读取的数据大小为size的元素个素

第四个参数为提供数据的文件指针,该指针指向文件内部数据

返回值:写入的总数据元素个数

例子,把file.in的文件读出来,写入到file.out
这里写图片描述

这里写图片描述

这里写图片描述

5 fgetc
函数原型:int fgetc(FILE *stream)

作用:从一个流中读取一个字符

参数:一个FILE型的指针

返回值:getc 以 unsigned char 的方式读取文件流,扩张为一个整数,并返回。 意思就是, getc 从文件流中取一个字节(8位),并加上24个零,变成32位整型,成为一个小于256的整数, 然后返回

6 fputc
函数原型:int fputc(int ch, FILE *stream)

作用:往一个流中输入一个字符

参数:第一个参数ch虽然是整型,但fputc 将其写入文件流之前,,把整数的高24位去掉了

第二个参数是一个FILE型的指针

返回值:如果成功输入,fputc 返回 0,否则返回EOF(-1)

例子,把filegetc.in的文件读出来,写入到fileputc.out
这里写图片描述

这里写图片描述

这里写图片描述

7 fgets
函数原型:char *fgets(char *s, int n, FILE *stream)

作用:从流中读取n-1个字符,末尾有一个结束标志’\0’

参数:第一个参数s是来接收字符串

第二个参数是字符个数

第三个参数是一个FILE型的指针

返回值:如果成功则返回s的指针,否则返回NULL

注意:这种读的方式,每次遇到换行就会结束,所以读的时候需要用while循环

8 fputs
函数原型:int fputs(const char * s, FILE *stream);

作用:从流中写入字符串

参数:第一个参数s是输入字符串

第二个参数是一个FILE型的指针

返回值:如果成功则回一个非负的值,否则,错误返回EOF

例子:把filegets.in的文件读出来,写入到fileputs.out
这里写图片描述

这里写图片描述

这里写图片描述

当然这个n可以调大一点,使其每次尽量读一整行

好了,Linux标准IO操作函数fopen fclose fread fwrite fgetc fputc fgets fputs就分享到这里,如有问题,欢迎指正,谢谢。

这篇关于Linux 标准IO操作函数fopen fclose fread fwrite fgetc fputc fgets fputs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/763305

相关文章

linux本机进程间通信之UDS详解

《linux本机进程间通信之UDS详解》文章介绍了Unix域套接字(UDS)的使用方法,这是一种在同一台主机上不同进程间通信的方式,UDS支持三种套接字类型:SOCK_STREAM、SOCK_DGRA... 目录基础概念本机进程间通信socket实现AF_INET数据收发示意图AF_Unix数据收发流程图A

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

golang panic 函数用法示例详解

《golangpanic函数用法示例详解》在Go语言中,panic用于触发不可恢复的错误,终止函数执行并逐层向上触发defer,最终若未被recover捕获,程序会崩溃,recover用于在def... 目录1. panic 的作用2. 基本用法3. recover 的使用规则4. 错误处理建议5. 常见错

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

linux如何复制文件夹并重命名

《linux如何复制文件夹并重命名》在Linux系统中,复制文件夹并重命名可以通过使用“cp”和“mv”命令来实现,使用“cp-r”命令可以递归复制整个文件夹及其子文件夹和文件,而使用“mv”命令可以... 目录linux复制文件夹并重命名我们需要使用“cp”命令来复制文件夹我们还可以结合使用“mv”命令总

Linux使用cut进行文本提取的操作方法

《Linux使用cut进行文本提取的操作方法》Linux中的cut命令是一个命令行实用程序,用于从文件或标准输入中提取文本行的部分,本文给大家介绍了Linux使用cut进行文本提取的操作方法,文中有详... 目录简介基础语法常用选项范围选择示例用法-f:字段选择-d:分隔符-c:字符选择-b:字节选择--c

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署