标准C的fopen详细使用

C标准库核心函数源码包:printf、scanf、fopen等底层实现全收录 整理了C语言标准库中关键函数的原始实现代码,包括格式化输出printf、输入解析scanf、文件打开fopen、浮点转字符串fcvt、文件描述符复制dup2、时钟获取clock、宽字符创建wcreat等。所有源文件统一采用大写命名加.C后缀(如PRINTF.C、SCANF.C),结构清晰,便于逐个阅读和分析。配套提供PLSTRING.H、STDEXCPT.H、OSCALLS.H、XLOCINFO等头文件,支撑函数运行所需的类型定义、异常处理、系统调用封装及本地化信息管理。部分文件含CPP扩展名(如NEWOP 阅读详情
格式:文件指针名=fopen(文件名,使用文件方式)

参数:
文件名 意义
"C://TC//qwe.txt" 文件C:/TC/qwe.txt
"qwe.txt" 和程序在同一目录下的qwe.txt

文件使用方式   意 义
“rt”      只读打开一个文本文件,只允许读数据
“wt”      只写打开或建立一个文本文件,只允许写数据
“at”      追加打开一个文本文件,并在文件末尾写数据
“rb”      只读打开一个二进制文件,只允许读数据
“wb”       只写打开或建立一个二进制文件,只允许写数据
“ab”       追加打开一个二进制文件,并在文件末尾写数据
“rt+”      读写打开一个文本文件,允许读和写
“wt+”      读写打开或建立一个文本文件,允许读写
“at+”     读写打开一个文本文件,允许读,或在文件末追加数据
“rb+”      读写打开一个二进制文件,允许读和写
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据

对于文件使用方式有以下几点说明:

  1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:

  r(read): 读
  w(write): 写
  a(append): 追加
  t(text): 文本文件,可省略不写
  b(banary): 二进制文件
  +: 读和写

  2. 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。

  3. 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

  4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。

  5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。
 
如果成功的打开一个文件, fopen()函数返回文件指针, 否则返回空指针
(NULL)。由此可判断文件打开是否成功。
fwrite(将数据写至文件流)  
相关函数  fopen,fread,fseek,fscanf
 
表头文件  #include<stdio.h>
 
定义函数  size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);
 
函数说明  fwrite()用来将数据写入文件流中。参数stream为已打开的文件指针,参数ptr 指向欲写入的数据地址,总共写入的字符数以参数size*nmemb来决定。Fwrite()会返回实际写入的nmemb数目。
 
返回值  返回实际写入的nmemb数目。
 
范例  #include<stdio.h>
#define set_s (x,y) {strcoy(s[x].name,y);s[x].size=strlen(y);}
#define nmemb 3
struct test
{
char name[20];
int size;
}s[nmemb];
main()
{
FILE * stream;
set_s(0,”Linux!”);
set_s(1,”FreeBSD!”);
set_s(2,”Windows2000.”);
stream=fopen(“/tmp/fwrite”,”w”);
fwrite(s,sizeof(struct test),nmemb,stream);
fclose(stream);
}
 
执行  参考fread()。 


fread(从文件流读取数据)  
相关函数  fopen,fwrite,fseek,fscanf
 
表头文件  #include<stdio.h>
 
定义函数  size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);
 
函数说明  fread()用来从文件流中读取数据。参数stream为已打开的文件指针,参数ptr 指向欲存放读取进来的数据空间,读取的字符数以参数size*nmemb来决定。Fread()会返回实际读取到的nmemb数目,如果此值比参数nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。
 
返回值  返回实际读取到的nmemb数目。
 
附加说明  
 
范例  #include<stdio.h>
#define nmemb 3
struct test
{
char name[20];
int size;
}s[nmemb];
main()
{
FILE * stream;
int i;
stream = fopen(“/tmp/fwrite”,”r”);
fread(s,sizeof(struct test),nmemb,stream);
fclose(stream);
for(i=0;i<nmemb;i++)
printf(“name[%d]=%-20s:size[%d]=%d/n”,i,s[i].name,i,s[i].size);
}
 
执行  name[0]=Linux! size[0]=6
name[1]=FreeBSD! size[1]=8
name[2]=Windows2000 size[2]=11 
来自http://zhidao.baidu.com/question/1064864.html
c语言中如何修改文件中间的几个字节 fopen的打开模式 在C语言中文件打开方式有这么几种: r 以只读方式打开文件,只能读不能写,往文件中写是没有任何效果的 r+ 可以读,也可以写,文件打开的时候,指向文件开头,可以通过seek改变读写位置 w 这种方式打开的文件句柄,只能写,如果文件存在则将长度清零,否则新建文件,这种句柄通过seek之后,seek位置之前的文件数据全部变成0x00 w+ 同w选项,只不过多了一个可读功能 a 这种方式打开的文件,可以写,但是位置在文件末尾,即使往回seek也没有用,数据还是从文件末尾开始附加 a+ 同a选项,多了可读的功能 另外还有2个选项,可以与上面的6个选项复合使用,一个是t表示以文本的 立即下载

相关推荐

HSMS/SECS/GEM/GEM300半导体通讯协议介绍

HSMS/SECS/GEM/GEM300半导体通讯协议解决方案介绍 目录 SECS/GEM协议通讯 1 目录 2 1.介绍 3 1.1 产品概述 3 1.1.1 高扩展性 4 1.2 通讯实现 4 1.2.2多主机实现 4 1.3 当前的SEMI标准 5 1.3.1 功能跟友商对比 6 1.4 软件灵活性 7 1.5 无需学习SECS 7 1.6 自定义消息传递 8 1.7 记录收集 8 1.8 SECS Manual文档 8 1.9 产品清单 8 2 产品结构 9 2.1 控制面板 9 2.2 使用环境

semisecs 16万+

fopen参数说明

 fopen参数说明 格式:文件指针名=fopen(文件名,使用文件方式)参数:文件名 意义"C://TC//qwe.txt" 文件C:/TC/qwe.txt"qwe.txt" 和程序在同一目录下的qwe.txt文件使用方式   意 义“rt”      只读打开一个文本文件,只允许读数据“wt”      只写打开或建立一个文本文件,只允许写数据“at”      追加打开一

wxiaozhe的专栏 2996

开源大模型推理GPU资源评估以及优化

随着大模型的火热很多项目中都使用到了开源大模型,这时候准确评估大模型的GPU资源非常重要,主要有下面几个方面:GPU是昂贵的资源。高估内存需求可能导致在硬件上的不必要支出,而低估则可能导致系统故障或性能下降。:适当的内存管理确保模型高效运行,能够更快地响应用户并处理更多并发请求。:随着需求的增长,理解内存需求对于在不牺牲性能或产生高昂成本的情况下扩展服务至关重要。尽管其重要性显而易见,但计算用于服务大型语言模型(LLM)的GPU内存并不简单。

优快云DN的博客 3116

C语言 文件操作6--文件打开方式详解

fopen文件打开模式 r代表read的简写,+代表可读可写,w代表write,b代表bit二进制位,t代表text r 打开只读文件,该文件必须存在r+ 打开可读可写的文件,该文件必须存在(这里的写文件是指将之前的文件覆盖rt 打开只读文本文件,该文本必须存在rt+ 读写打开一个文本文件,允许读和写,该文件必须存在(这里的写文件是指将之前的文件覆盖rb 只读打开一个二进制文件,,该文本必须存...

weixin_33863087的博客 924

GPMC开发笔记(TI开发者推荐笔记)

因为gpmc(General-Purpose Memory Controller)是TI特有的驱动,gpmc的资料比较少,本人开发gpmc驱动算是摸了很多石头过河的。所以想通过这遍文章可以给也做GPMC驱动开发的后来者有一点参考价值。文章如有瑕疵也请各位批评改正。 1.GPMC介绍 gpmc主要用于与nandflash,norflash,fpga进行通信。在这里主要介绍gpmc16位数据和地址线不复用nor模式下的通信。 注意:在这种模式下gpmc_a[0]引脚是没法使用的 1.1GPMC信号线

weixin_44316996的博客 7502

基于Python的携程景点评价爬虫与情感评分分析

摘要: 本项目通过Python技术栈实现携程景点评论的情感分析系统,包含数据爬取、文本预处理、情感评分和可视化分析全流程。使用requests抓取评论接口,jieba进行中文分词,SnowNLP计算情感得分(0-1),并通过词云、情感分布图呈现结果。典型分析显示72%评论为正面,负面反馈多涉及"排队久""票价贵"等问题。系统可辅助景点口碑管理,扩展方向包括多景点对比、BERT模型优化等。项目强调需遵守爬虫伦理,控制请求频率,适用于非商业用途的旅游数据分析。(150字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 977

c语言文件操作 fopen、fwrite、fread、fclose、fgets、fputs

5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。如果成功的打开一个文件, fopen()函数返回文件指针, 否则返回空指针。3. 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。4. 若要向一个文件追加新的信息,用“a ”方式打开文件。2. 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。

weixin_42936764的博客 1790

【01】Python解释器的安装

工欲善其事必先利其器。君欲学PYthon,则必先安装Python解释器。安装过程相对简单,大致跟着如下步骤走即可。

侯小啾技术博客 1258

【文件操作】fopen() 参数解析

文件打开方式: 1、“r” 打开一个用于读取的文本文件 2、“w” 创建一个用于写入的文本文件 3、“a” 附加到一个文本文件 4、“rb” 打开一个用于读取的二进制文件 5、“wb” 创建一个用于写入的二进制文件 6、“ab” 附加到一个二进制文件 7、“r+” 打开一个用于读/写的文本文件 8、“w+” 创建一个用于读/写的文本文件 9、“a+” 打开一个用于读/写的文本文件 10、“rt” 只读打开一个文本文件,只允许读数据 11、“wt” 只写打开或建立一个文本文件,只允许写数

helanzhiying的博客 2881

一次搞懂 OData Deep Create:在 ABAP Client Proxy 中优雅完成父子实体的一键插入

摘要: 本文面向熟悉SAP Gateway与OData的ABAP工程师,详解Deep Create的核心概念与实现。Deep Create允许在一次请求中原子化创建主实体及其关联子实体(如Team与Manager),解决多次HTTP请求导致的脏写问题。对比OData v2/v4协议差异后,重点阐述ABAP Client Proxy中通过Data Description Node构造层级数据描述树的方法,包括根/子节点定义、属性对齐及业务数据绑定。提供可复用的ABAP代码骨架,并区分Deep Create与$

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 190

【Mode】FDE 求解器工作流程

Lumerical---FDE(Finite Difference Eigenmode) Solver

u011699626的博客 4941

C标准库读写文件:fopen

中的文件操作 API,用于打开、读取、写入和关闭文件。这些函数为文件操作提供了简单的接口。函数:从文件中读取一行,存储到指定的缓冲区中。结构的指针,这个指针用于后续的文件操作。返回值是成功读取的项数。:用于关闭文件并释放与文件相关的资源。: 每个数据项的大小,以字节为单位。函数:用于移动文件指针到指定位置。,则可能遇到文件结尾或发生了错误。函数:打开文件,返回一个指向。: 指向存储读取数据的缓冲区。函数:将数据写入到文件。: 指向已打开的文件的。: 指向已打开的文件的。: 指向要关闭的文件的。

shenfenxihuan的博客 1224

数据中台:大数据平台,数据仓库(DM),数据中台之间的联系以及异同分析

大数据平台是一个技术平台。这个技术平台提供了对于大数据的分布式采集,存储,流处理和计算,实时分析等能力。在没有大数据平台前也有数据集成和管理的平台,这种平台可以实现对结构化数据本身的采集,集成和管理。 管理平台,是在原生的大数据生态的基础之上,为了更好的管理集群服务,管理集群的资源,提供灵活SRE能力和资源核算审计能力的一系列工具和合称整体架构数据中台包括数据仓库的全部内容,数据仓库为数据中台提供了数据对外提供服务的基础资源,数据中台将数据仓库建设的投入价值进行最大化,以加快数据赋能业务的速度大家都知道数据

GIS摆渡人 2132

C语言fopen自动创建文件,C语言:标准IO_fopen( )、fclose() ①

思前想后一个月,我终于敲下了我的第一篇开山之作。博客千千万,我的博客首先记录的是学习时候的理解,用于给自己翻阅查找,现在主要研究的是C语言和STM32。如果能帮到你,那是最好的,假如我写的东西有错误欢迎指正,所以请反复对比,仅作参考。其次,这里不仅记录学习,也会写下我在朋友圈不能公开的想法和秘密!马上进入主题一、什么是文件?我相信,就算接触过C语言的文件输入输出的人,还会回答:文件不就是鼠标点击的...

weixin_39631632的博客 3524

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

学习笔记——标准C函数fopen、fwrite、fread、fseek、fclose

前言 上一节:学习笔记——Linux的open、write、read、lseek、close函数 上一节学习了Linux的open、write、read、lseek、close函数,那么标准C函数fopen、fwrite、fread、fseek、fclose和他们有什么不同呢?该怎么用呢? 区别可以看看这里学习笔记——open和标准c库fopen的区别 下面我们用一个demo演示一下,其实和open等差别不大,参数有点变动。 fopen函数 fopen功能是打开文件。 #include <stdi

打不倒的程序猿 913

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【C标准库】详解fopen函数 一篇让你搞懂fopen函数

详细讲解fopen函数,以及日常中我们基本使用的文件打开方式

墨辰JC的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Linux系统调用函数open()、标准C库函数fopen()函数讲解以及它们之间的使用区别

open() 是 Linux 系统调用,用于打开或创建文件。它返回一个文件描述符,用于后续的文件操作。open() 提供了底层的、无缓冲的 I/O,直接与操作系统内核交互。fopen() 是标准 C 库函数,也用于打开或创建文件。它返回一个 FILE * 指针,用于后续的文件操作。fopen() 提供了更高级别的接口,包括缓冲和文件位置管理。由于 fopen() 是库函数,所以它在所有支持 C 标准库的系统上都可用。

weixin_49503250的博客 5456

windows c语言 fopen串口,串口编程 - 基于C标准库

简介操作系统:WIN7开发IDE:CodeLite V3.0.5041编译器:GNU GCC V4.5.2代码/***********************************************************************//*** @file main.c* @brief Serial Port programming, using C...

weixin_35972359的博客 854

C语言:标准IO_fopen( )、fclose() ①

思前想后一个月,我终于敲下了我的第一篇开山之作。 博客千千万,我的博客首先记录的是学习时候的理解,用于给自己翻阅查找,现在主要研究的是C语言和STM32。如果能帮到你,那是最好的,假如我写的东西有错误欢迎指正,所以请反复对比,仅作参考。其次,这里不仅记录学习,也会写下我在朋友圈不能公开的想法和秘密! 马上进入主题 一、什么是文件?   我相信,就算接触过C语言的文件输入输出的...

aofu9487的博客 338

标准c库的fopen函数

在文件 I/O 中,使用 open()系统调用打开或创建文件,而在标准 I/O 中,我们将使用库函数 fopen()打开或创建文件,fopen()函数原型如下所示: #include <stdio.h> FILE *fopen(const char *path, const char *mode); 使用该函数需要包含头文件 stdio.h。 函数参数和返回值含义如下: path:参数 path 指向文件路径...

qq_45761493的博客 1353

学习笔记——open和标准c库fopen的区别

前言 open 和fopen 长得相似,用起来也比较相似(调用),那么到底有什么区别呢?在刚开始学习的时候,总有困惑,今天来捋一捋 捋之前先介绍下buffer缓冲这个东西。 buffer分为用户态和内核。 用户进程缓冲区: 一些程序在读取文件时,会先申请一块内存数组,称为buffer,然后每次调用read,读取设定字节长度的数据,写入buffer。(用较小的次数填满buffer)。之后的程序都是从buffer中获取数据,当buffer使用完后,在进行下一次调用,填充buffer。【缓冲区就可以理解为

打不倒的程序猿 619

Linux系统编程4--标准c库对文件的操作(fopen、fread、fwrite、fseek、fclose、fputc、fgetc、feof)

本文详细的讲解并利用程序举例了Linux系统编程-->标准c库对文件的操作,其中包括open和fopen的区别和联系,fwrite、fseek、fread、fclose、feof、fgetc/fgets、fputc/fputs 等函数。

Super_Fisher_man的博客 1166

使用fopen等标准C库来操作文件

对于读read,同样返回值大部分情况下跟随nmemb的值,除了:当给出的读取缓存区已经已经读满了或者已经没东西可读了,那么就不会再读了,并且返回已经读的基本单元个数。

mjmmm的博客 1488

【C/C++】freopen与fopen实战指南:从标准流重定向到文件交互编程

本文深入探讨了C/C++中freopen与fopen的核心差异及实战应用。freopen适用于标准流重定向,特别适合算法竞赛和日志记录;而fopen则提供更精细的文件控制,适合多文件处理和二进制操作。文章通过代码示例详细展示了两种方法的最佳实践和常见陷阱,帮助开发者根据场景选择合适方案。

weixin_30861797的博客 557

linux文件编程(4)—— 用ANSIC标准C库函数进行文件编程:fopen、fread、fwrite、fseek

fopen fread fwrite fseek 文件的简单读写示例 fputs,fputc,fgetc,fgets,feof

zhuguanlin121的博客 662
上一篇: 将整型数转换成字符串
下一篇: __FILE__,__LINE__,FUNCTION__的宏
Coding人生
博客等级 码龄20年 37粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值