当前位置:  技术问答>linux和unix

又是读写文件的问题,写进去读不出来

    来源: 互联网  发布时间:2016-04-04

    本文导语:  写进去,write返回68个字节,可是用ls -l察看文件,发现文件大小是0 read返回为0,当然啥也没读出来。 代码如下,大家帮忙看看吧,被读写文件的问题弄得头大,纠缠两天了。 #include  #include  #include  #include  #include...

写进去,write返回68个字节,可是用ls -l察看文件,发现文件大小是0
read返回为0,当然啥也没读出来。
代码如下,大家帮忙看看吧,被读写文件的问题弄得头大,纠缠两天了。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

 typedef struct {
 char name[64];
 int id;
} Shortcut;
int main()
{
 int fd; 
 int wrnum,rdnum;
 Shortcut *wangli=(Shortcut *)malloc(sizeof(Shortcut));
 Shortcut *buf=(Shortcut *)malloc(sizeof(Shortcut));
 wangli->id=10; 
 sprintf(wangli->name,"我的书");
 printf("sizeof wangli's name is %d,%sn",sizeof(wangli->name),wangli->name);
 
fd = open("./shortcut",O_RDWR|O_CREAT| O_TRUNC);
 if(fd==-1)
  printf("open failedn");
  printf("fd is %dn",fd);
 wrnum=write(fd,wangli,sizeof(Shortcut));
 if(wrnum>0)
  printf("write %dn",wrnum); 
  close(fd);
 int fd1;
 fd1=open("./shortcut",O_RDWR|O_TRUNC); 
if(fd1==-1)
  printf("open failedn");
 printf("fd1 is %dn",fd1);
 rdnum=read(fd1,buf,sizeof(Shortcut));
printf("readnum= %dn",rdnum);
//printf("%sn",buf->name);
printf("%dn",buf->id);
free(buf);
free(wangli);
return 0;
}

|
第二次打开文件的时候不要用O_TRUNC选项,改成这样:fd1=open("./shortcut",O_RDWR);
否则会将文件的内容清空。

|
打开文件时不要使用 O_TRUNC 看看吗?

|
第二次读的时候不要加O_TRUNC
你觉得读的有问题,把写的代码注释掉不就知道了

|
第二次打开文件的时候不要用O_TRUNC选项,嗯!

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 又是中文乱码问题,呵呵,不知道为什么又会出来烦我?
  • shtm是什么技术,jsp又是什么技术?
  • 请问tomcat与apache是什么关系? jakarta又是什么?
  • servlets 能打包成.jar文件吗?打包之后又是怎样调用呢?
  • 又是50分,给我提醒,我就给分给你。共一百分!
  • 又买了一个版本的.net,又是装不上,烦也烦死了,还是java爽呀。散点分玩玩。
  • 又是一个继承问题
  • 更改主机名,用hostname更改后启动,又是原来的主机名
  • 又是一个简单问题!
  • 环境变量怎么设啊(@.@又是菜鸟一只)
  • 弱问:一个设备能不能既是字符设备又是块设备?
  • 又是几个问题JList XYLayOut applet下
  • 这个结果是什么?又是为什么?
  • 请问在JAVA里将小写字母换为大写字母是用什么函数,大写转成小写又是用哪个函数?
  • @@@@servlet问题!!(但愿我这最后5分不要又是泥牛入海a!!!!!!)@@@@
  • ZOD-dvd-x86_64.iso中的ZOD是什么意思?Final zod又是什么意思?
  • pwd|sed 's//cygdrive/([a-z])/1:/' | sed 's///#/g'`\/(pwd代表绝对地址)这个sed又是什么
  • 又是100分
  • 又是一个很菜的问题但是不得不麻烦大哥大姐了啊~
  • php iis7站长之家
  • 新手送分题(又是无法显示)!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3