fopenC语言中,fopen()函数中,r还有w代表什么操作,类似的还有哪些?

fopen  时间:2021-08-04  阅读:()

c语言如何判断fopen函数打开文件的操作是否成功?

fopen函数用于打开文件并获取文件的指针,以便对文件进行操作。

函数原型:file * fopen(const char * path,const char * mode); 参数:path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。

mode有下列几种形态字符串: r 以只读方式打开文件,该文件必须存在。

r+ 以可读写方式打开文件,该文件必须存在。

rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在。

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。

若文件不存在则建立该文件。

w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。

若文件不存在则建立该文件。

a 以附加的方式打开只写文件。

若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

(eof符保留) a+ 以附加方式打开可读写的文件。

若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

(原来的eof符不保留) wb 只写打开或新建一个二进制文件;只允许写数据。

wb+ 读写打开或建立一个二进制文件,允许读和写。

ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库以二进制模式打开文件。

如果不加b,表示默认加了t,即rt,wt,其中t表示以文本模式打开文件。

由fopen()所建立的新文件会具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)权限,此文件权限也会参考umask值。

有些c编译系统可能不完全提供所有这些功能,有的c版本不用"r+","w+","a+",而用"rw","wr","ar"等,读者注意所用系统的规定。

返回值: 文件顺利打开后,指向该流的文件指针就会被返回。

如果文件打开失败则返回null,并把错误代码存在errno中。

一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。

示例:以只读方式打开文件 #include #define f_path "d:\myfile\file.dat" int main(void) { file*fp=null;//需要注意 fp=fopen(f_path,"r"); if(null==fp) { return -1;//要返回错误代码 } fclose(fp); fp=null;//需要指向空,否则会指向原打开文件地址 return 0; }

c语言fopen函数的函数介绍

例如: FILE *fp; fp=fopen("file a","r"); 其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。

又如: FILE *fphzk fphzk=fopen("c:\hzk16","rb"); 其意义是打开C驱动器磁盘的根目录下的文件hzk16,这是一个二进制文件,只允许按二进制方式进行读操作。

两个反斜线“\ ”中的第一个表示转义字符,第二个表示根目录。

使用文件的方式共有12种,下面给出了它们的符号和意义。

文件使用方式

C语言中,fopen()函数中,r还有w代表什么操作,类似的还有哪些?

我估计LZ是想说的是freopen()吧 freopen(arg1,arg2,arg3)是c语言的打开文件的方式,含有三个参数 arg1:表示的是打开文件的路径 arg2:表示“w”或者"r",表示打开文件的方式,读或者写 arg3:为stdin或者stdout表示标准输入或者输出。

例如fropen("1.txt","r",stdin) 的意思是以标准读的方式打开当前路径下的1.txt文件。

至于有没有其他类似的,是这样的,每个人见都有不同的打开文件的方式,但原理都一样,显示读入流,在做相应的转换,比如转成string什么的,只不过函数名不一样而已。

博鳌云¥799/月,香港110Mbps(含10M CN2)大带宽独立服务器/E3/8G内存/240G/500G SSD或1T HDD

博鳌云是一家以海外互联网基础业务为主的高新技术企业,运营全球高品质数据中心业务。自2008年开始为用户提供服务,距今11年,在国人商家中来说非常老牌。致力于为中国用户提供域名注册(国外接口)、免费虚拟主机、香港虚拟主机、VPS云主机和香港、台湾、马来西亚等地服务器租用服务,各类网络应用解決方案等领域的专业网络数据服务。商家支持支付宝、微信、银行转账等付款方式。目前香港有一款特价独立服务器正在促销,...

PIGYun月付14.4元起,美国洛杉矶/韩国VPS七月6折

PIGYun是成立于2019年的国人商家,提供香港、韩国和美西CUVIP-9929等机房线路基于KVM架构的VPS主机,本月商家针对韩国首尔、美国洛杉矶CUVIP-AS29、GIA回程带防御等多条线路VPS提供6-8.5折优惠码,优惠后韩国首尔CN2混合BGP特惠型/美国洛杉矶GIA回程带10Gbps攻击防御VPS主机最低每月14.4元起。下面列出几款不同机房VPS主机配置信息,请留意不同优惠码。...

ProfitServer$34.56/年,西班牙vps、荷兰vps、德国vps/不限制流量/支持自定义ISO

profitserver怎么样?profitserver是一家成立于2003的主机商家,是ITC控股的一个部门,主要经营的产品域名、SSL证书、虚拟主机、VPS和独立服务器,机房有俄罗斯、新加坡、荷兰、美国、保加利亚,VPS采用的是KVM虚拟架构,硬盘采用纯SSD,而且最大的优势是不限制流量,大公司运营,机器比较稳定,数据中心众多。此次ProfitServer正在对德国VPS(法兰克福)、西班牙v...

fopen为你推荐
一致性车辆一致性证书重要吗?阿里P8阿里巴巴有什么职称codereviewios有什么好的代码review安卓模拟器哪个好用电脑上的手机模拟器有哪些?哪个更好一点?高质量图片iphone上有什么高质量的壁纸APP吗系统登录界面电脑启动总是出现登录界面怎么解决rs485协议RS232/RS485串行通信协议的解释赵锡成福茂航运公司的英文是什么?手机壳生产厂家手机保护套保护壳厂家第五人格抄袭那个模仿第五人格的游戏叫什么
北京服务器租用 香港服务器租用99idc 深圳主机租用 域名空间购买 VPS之家 过期已备案域名 互联网域名管理办法 2019年感恩节 优惠码 Hello图床 网站实时监控 免费网络电视 一元域名 权嘉云 seednet 广州服务器 四核服务器 如何建立邮箱 申请网站 空间购买 更多