今天使用文件操作函数:fopen fread fwrite fclose时,编译正常通过了,但是运行时就爆出了 invalid argument错误

FILE* fp = fopen ("a.txt", "bw"); // error : b只能书写在w的后边表示只能以二进制操作该文件

if (NULL == fp) {

perror ("fopen");

return -1;

执行时出错,后来比对以前的代码笔记,发现fopen的第二参数写法错误,b表示以二进制操作文件,只能跟在其他几个字母的后边,不能书写在开头

fopen的第二个参数只能是以下几种书写模式:

“r” 以 只读 方式打开文件,该文件必须存在。 “r+” 以可读写方式打开文件,该文件必须存在。 ”rb+“ 读写打开一个 二进制文件 ,允许读写数据,文件必须存在。 “w” 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 “w+” 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 “a” 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。( EOF 符保留) ”a+“ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留) “wb” 只写打开或新建一个 二进制文件 ;只允许写数据。 “wb+” 读写打开或建立一个二进制文件,允许读和写 “wx” 创建文本文件,只允许写入数据.[C11] “wbx” 创建一个二进制文件,只允许写入数据.[C11] ”w+x“ 创建一个文本文件,允许读写.[C11] “wb+x” 创建一个二进制文件,允许读写.[C11] “w+bx” 和"wb+x"相同[C11] “rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数据
“rb+” 读写打开一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据 以x结尾的模式为独占模式,文件已存在或者无法创建(一般是路径不正确)都会导致fopen失败.文件以操作系统支持的独占模式打开
php使用 fopen 函数 打开 文件 时出现failed to open stream: Invalid argument in 错误 分析原因解决方法 错误 原因:字符集 错误 ,windows默认的字符集是GBK,而当前的字符集是UTF-8,所以就出现这个 错误 。解决这个 错误 使用iconv 函数 转换字符集即可。 $wordname = iconv("UTF-8", "GBK//IGNORE", '哎呀www.qipa250.com_奇葩.doc'); 使用iconv转换字符集,//IGNORE的意
$path = "C:\NucServ\www\vv\static\arrays\excel.xls"; $fp = fopen ($path, "w"); if(fwrite($fp= fopen ($path,"w"),$text)) echo "打开了"; fclose($fp); 报错信息: failed to open stream: Invalid argument 解决方式一: $path = "C:\\NucServ\\www\\vv\\sta
sdk adt 装完之后我就开始尝试导入MP3 文件 。导入的步骤如下: 进入 file explorer 选中mnt-sdcard-Music,单击导入按钮之后选中MP3 文件 导入。控制台则显示 [2012-07-19 18:01:31 - ddms] transfer error : Invalid argument [2012-07-19 18:01:32] Failed to push sele
最近 fopen 遇到打不开 文件 的问题,参考下面的方法3问题解决了。 原文链接:https://blog.csdn.net/Andy_93/article/details/78865000 最近在分析一个偶现的问题,偶现概率特别低,问题还在分析中。把分析的知识做个总结,后面再继续补充。 问题描述: 代码在调用Lua的require 函数 时发生异常,通过查看require的源码跟踪,发现该 函数 fopen 函数 返回打开 文件 失败的异常, 下面就来总结下 fopen 打开 文件 出错可能有哪些原因,也许不全,欢迎补充。
在调用fread的时候,传参不注意导致的一个问题:初始内存大小: buf[512]; fread(buf, 1, 1024, fp); -> 得到errno = 22 fread 调用 -> /* define the normal version */ size_t __cdecl _fread_nolock_s( void *buffer, size_t buff...
本文描述了在Eclipse环境下进行NDK开发时遇到的问题及相关解决方法。 问题列表: * Unresolved inclusion: <jni.h>或Unresolved inclusion: <vector>等 * memcpy的 Invalid argument s问题 这几个问题不影响程序的编译,但会导致无法在Eclipse中进行运行程序等 操作