fopen和fopen_s的区别
转载:https://blog.csdn.net/keith_bb/article/details/50063075
fopen:
原型:FILE * fopen(const char * path,const char * mode);接收两个实参
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。
示例程序源码:FILE *cfPtr;
if((cfPtr = fopen("test.dat","w")) == NULL) //若cfPtr = NULL,即文件未成功打开,函数返回0,否则返回1
return 0;
else return 1;
fopen_s:
原型:
errno_t fopen_s( FILE** pFile, const char *filename, const char *mode );
errno_t _wfopen_s( FILE** pFile, const wchar_t *filename, const wchar_t *mode );
pFile:文件指针将接收到打开的文件指针指向的指针。infilename:文件名。inmode:允许的访问类型。
返回值:如果成功返回0,失败则返回相应的错误代码。
示例程序源码:(转载自:百度百科)
#include<stdio.h>
FILE*stream,*stream2;
intmain(void)
{
errno_terr;
//Openforread(willfailiffile"crt_fopen_s.c"doesnotexist)
err=fopen_s(&stream,"crt_fopen_s.c","r");
if(err==0)
{
printf("Thefile'crt_fopen_s.c'wasopened\n");
}
else
{
printf("Thefile'crt_fopen_s.c'wasnotopened\n");
}
//Openforwrite
err=fopen_s(&stream2,"data2","w+");
if(err==0)
{
printf("Thefile'data2'wasopened\n");
}
else
{
printf("Thefile'data2'wasnotopened\n");
}
//ClosestreamifitisnotNULL
if(stream)
{
err=fclose(stream);
if(err==0)
{
printf("Thefile'crt_fopen_s.c'wasclosed\n");
}
else
{
printf("Thefile'crt_fopen_s.c'wasnotclosed\n");
}
}
//Allotherfilesareclosed:
intnumclosed=_fcloseall();
printf("Numberoffilesclosedby_fcloseall:%u\n",numclosed);
}
fopen和fopen_s的区别的更多相关文章
- fopen和fopen_s用法的比较
open和fopen_s用法的比较 fopen 和 fopen_s fopen用法: fp = fopen(filename,"w"). fop ...
- fopen和fopen_s用法的比较 【zz】
在定义FILE * fp 之后,fopen的用法是: fp = fopen(filename,"w").而对于fopen_s来说,还得定义另外一个变量errno_t err,然后e ...
- unix fopen和fopen_s用法的比较
在定义FILE * fp 之后,fopen的用法是: fp = fopen(filename,"w").而对于fopen_s来说,还得定义另外一个变量errno_t err,然后e ...
- fopen,file_get_contents,curl的区别
1. fopen /file_get_contents 每次请求都会重新做DNS查询,并不对DNS信息进行缓存.但是CURL会自动对DNS信息进行缓存.对同一域名下的网页或者图片的请求只需 ...
- 【C++】fopen与fopen_s
说明: VS2010中使用fopen,是没有问题的.使用VS2015时由于VS的高版本对文件操作的安全性有了较高的要求,所以会出现如下情况: fopen用法: fp = fopen(filename ...
- [转]PHP中fopen,file_get_contents,curl的区别
1. fopen /file_get_contents 每次请求都会重新做DNS查询,并不对 DNS信息进行缓存.但是CURL会自动对DNS信息进行缓存.对同一域名下的网页或者图片的请求只 ...
- 【VS开发】fopen 文本文件与二进制文件区别
在学习C语言文件操作后,我们都会知道打开文件的函数是fopen,也知道它的第二个参数是 标志字符串.其中,如果字符串中出现'b',则表明是以打开二进制(binary)文件,否则是打开文本文件. 那么什 ...
- 文件操作(FILE)与常用文件操作函数
文件 1.文件基本概念 C程序把文件分为ASCII文件和二进制文件,ASCII文件又称文本文件,二进制文件和文本文件(也称ASCII码文件)二进制文件中,数值型数据是以二进制形式存储的, 而在文本文件 ...
- (转)open和fopen的区别:
fopen与open的区别 open和fopen的区别: 1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓 ...
随机推荐
- 【python】我OUT了,原来函数中的冒号和箭头是这么回事
翻了翻httprunner的源代码,越看越不对劲,感觉有点看不懂语法了. 这都什么鬼?感觉心好慌,顿时感到惭愧万分,还好意思说自己了解Python呢. 赶紧了解一下,原来这叫 type hints,是 ...
- laravel5学习并搭建网站【更新至2020-09-03】
之前一直不清楚 php artisan 要如何使用,有朋友推荐使用phpstorm可以进行命令行执行, 现在发现其实如果真的不喜欢phpstorm的加载缓慢,可以试试计算机原有的命令行 记住需要跳转到 ...
- 6 年前,只会 JSP 和 Servlet 就可以找到工作
这篇文章在去年就已经构思了,不过一直都没有整理出来,今天终于完成了这篇文章,所以发上来给大家看一看,都是一些个人的小感慨,我的观点可能不是非常的完善,大家也可以一起讨论. 找工作之难,难于上青天 五六 ...
- 水仙花数的条件:1.是一个三位数,2.个百千位数字的3次方加起来的和等于当前的三位数。如果,想要完美一点可以在外部加while循环
#!/usr/bin/env python# -*- coding: utf-8 -*-print("请输入三位数:")num = input()# 定义常量SumNum = 0# ...
- 想要使用GPU进行加速?那你必须事先了解CUDA和cuDNN
这一期我们来介绍如何在Windows上安装CUDA,使得对图像数据处理的速度大大加快,在正式的下载与安装之前,首先一起学习一下预导知识,让大家知道为什么使用GPU可以加速对图像的处理和计算,以及自己的 ...
- 存储过程中拼接SQL语句
很多时候我们需要利用参数在存储过程中重新组织SQL语句,在存储过程中拼接的SQL语句只是一个字符串,不会被直接执行,所以加一个execute执行它就可以了.具体看如下演示代码: 代码: set ANS ...
- Life is not the amount of breath you take.
It's the moments that take you breath away.
- 车联网容器应用探索:5G下边缘云计算的车路协同实践
导语 | 5G网络下,多接入边缘计算(MEC)应运而生.结合TKEStack强大的集群管理能力和异构计算资源管理能力,腾讯打造了一个功能完备的边缘计算PaaS平台TMEC,提供了高精确度定位.视频处理 ...
- 阿里云短信服务验证码封装类 - PHP
本文记录在ThinkPHP6.0中使用阿里云短信验证码,该封装类不仅仅局限于TP,拿来即用 使用该类之前必须引入 flc/dysms 扩展,该封装类就是基于这个扩展写的 composer requir ...
- jzoj 3567. 【GDKOI2014】石油储备计划
Problem Description Input Output 对于每组数据,输出一个整数,表示达到"平衡"状态所需的最小代价. Data Constraint 对于20%的数据 ...