今天使用文件操作函数: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中进行运行程序等
操作
。