文件写入函数write()问题

xintangxiao 2012-10-12 03:38:39
我用
int filehandle;
long writenum,filelength;

filehandle=open(“a.txt”,O_RDWR|O_CREAT|O_APPEND);
writenum=write(filehandle,&temp[0],filelength);

数组temp里有足够多数据,长度也足够。

在linux虚拟机下,filelength无论取大数 871000还是小数5000,均可完成。

在PPC中 filelength取小数5000,可完成;取大数 871000,读取返回值writenum就不对了,要么400000+要么600000+,总之不到871000,不知为何,向各位大神求助
...全文
500 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xintangxiao 2012-10-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

-1只是告诉你错了,检查errno得到具体的原因。
[/Quote]
一开始它不报错 就是不给我写完 再接着写才报错 怎么把具体错误原因导出来 求指导
xintangxiao 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

write是os API, 不属于ANSI C,请查你的系统是不是特殊限制。
[/Quote]
这个从未想到过 十分感谢
ForestDB 2012-10-15
  • 打赏
  • 举报
回复
-1只是告诉你错了,检查errno得到具体的原因。
xintangxiao 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

大数据改成小数据应该就没有问题了。
[/Quote]

大数据换成小数据分批写入也还是不行啊
xintangxiao 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

write是os API, 不属于ANSI C,请查你的系统是不是特殊限制。
[/Quote]

我换成了fopen和fwrite,还是不行 老样子
wizard_tiger 2012-10-12
  • 打赏
  • 举报
回复
LS都说了,学习一下。
mujiok2003 2012-10-12
  • 打赏
  • 举报
回复
write是os API, 不属于ANSI C,请查你的系统是不是特殊限制。
夏天__ 2012-10-12
  • 打赏
  • 举报
回复
大数据改成小数据应该就没有问题了。
xintangxiao 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

和编译器支持的最大长度有关,长度太长就会出错。、
[/Quote]
我把大数据分成几组小数据分批写入会不会解决这个问题?
夏天__ 2012-10-12
  • 打赏
  • 举报
回复
和编译器支持的最大长度有关,长度太长就会出错。、
xintangxiao 2012-10-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

 如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。
[/Quote]

是的,可是为什么我明明我一百个字节的内容它却只写了90个呢,还有就是我发现没写完就打算从实际写入数的后面接着再写,却写不进了,返回-1了,该怎么解决呢
夏天__ 2012-10-12
  • 打赏
  • 举报
回复
 如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧