当前位置: 技术问答>linux和unix
把一个结构体写入文件再读出,读出字符不为0,但是具体内容都不对,代码如下
来源: 互联网 发布时间:2016-04-03
本文导语: #include #include #include #include #include #include #include #include #include typedef struct { int age; int num; }record1; record1 wanglili={20,30}; int main() { int fd; int wrnum,rdnum; record1 buf={100,100}; printf("%dn",buf.age);printf("%dn",buf.num...
#include
#include
#include
#include
#include
#include
#include
#include
#include
typedef struct
{
int age;
int num;
}record1;
record1 wanglili={20,30};
int main()
{
int fd;
int wrnum,rdnum;
record1 buf={100,100};
printf("%dn",buf.age);printf("%dn",buf.num);
printf("sizeof buf is %dn",sizeof(buf));
fd = open( "myrecord ",O_RDWR|O_CREAT|O_APPEND);
if(fd==-1)
printf("open failedn");
wrnum=write(fd,&wanglili,sizeof(record1));
if(wrnum>0)
printf("write %dn",wrnum);
close(fd);
fd=open( "myrecord ",O_RDWR);
rdnum=read(fd,&buf,sizeof(record1));
printf("readnum= %dn",rdnum);
printf("%dn",buf.age);
printf("%dn",buf.num);
}
rdnum返回8,说明读到内容了,但是读出的数字都是0,这是怎么回事啊
|
内容是对的.
你写入的是 wanglili 内容是{20,30};
所以读出的是 20, 30
另外文件名后面不要有空格。
你写入的是 wanglili 内容是{20,30};
所以读出的是 20, 30
另外文件名后面不要有空格。