- 论坛徽章:
- 0
|
20可用积分
> cat f.c
#include<stdio.h>
int main(void){
FILE* pf=fopen("cling.bin","wb");
if(pf==NULL){
printf("can't open file\n");
exit(1);
}
fprintf(pf,"%d",1);
fclose(pf);
return 0;
}
> od -x cling.bin
0000000 3100
0000001
制定了2进制模式,还是写入了1的ascii对应的31。这是为什么呢?
我在Solaris5.9上面,谢谢!
[ 本帖最后由 cling6394 于 2008-11-26 17:57 编辑 ] |
最佳答案
查看完整内容
这个和fopen的模式已经无关了,可以参考http://hi.baidu.com/jssfy/blog/item/25eb074527a9a421cffca35c.html人家说了"即使是用二进制打开,但如果你用fputc,fputs,fprintf这些函数,其实还是和用文本文件打开一样。只有用到fwrite/fread函数,才会看到一个整型占4个字节。"呵呵
|