fopen 和 fopen_s的区别

定义FILE *fp 之后
fopen的用法是: fp = fopen(“filename”,“w”);
对于fopen_s来说,还得定义另外一个变量 errno_t err,
然后err = fopen_s(&fp,“filename”,“w”);
返回值:
fopen:打开文件成功的话返回文件指针(赋值给fp),打开失败则返回 NULL值;
fopen_s:打开文件成功返回0,失败返回非0。

demo

//打开文件
		FILE *fp;
		errno_t err = fopen_s( &fp, "D:\\users.txt", "r");
		

访问方式

“r” = “rt”
打开一个文本文件,文件必须存在,只允许读
“r+” = “rt+”
打开一个文本文件,文件必须存在,允许读写
“rb”
打开一个二进制文件,文件必须存在,只允许读
“rb+”
打开一个二进制文件,文件必须存在,允许读写
“w” = “wt”
新建一个文本文件,已存在的文件将内容清空,只允许写
“w+” = “wt+”
新建一个文本文件,已存在的文件将内容清空,允许读写
“wb”
新建一个二进制文件,已存在的文件将内容清空,只允许写
“wb+”
新建一个二进制文件,已存在的文件将内容清空,允许读写
“a” = “at”
打开或新建一个文本文件,只允许在文件末尾追写
“ab”
打开或新建一个二进制文件,只允许在文件末尾追写
“ab+”
打开或新建一个二进制文件,可以读,但只允许在文件末尾追写

需要注意的点:
1.fopen_s 需要三个参数。
2.一定要指定这个文件存放的路径,不能够只有文件名,不然系统找不到这个文件在哪里,也不会写字符到这个文件里面(也可以将文件放在程序目录中,这时可以不用加路径,直接输入文件名即可)。
3.指针变量前要加取地址符。

`

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐