qq_42010270 2022-02-22 23:47 采纳率: 54.5%
浏览 138
已结题

c语言write与read函数读取写入结构体到文件问题

将结构体赋值后写入文件,再用read函数读取到结构体指针中,并没有获取到打印信息,请教这是怎么回事!!


#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>

struct flow
{
    unsigned int num;
    char name[32];
    unsigned char metric;
};

int main(int argc, const char *argv[])
{
    int fd = open("./open.txt",O_RDWR | O_CREAT | O_TRUNC,0666);
    if(fd == -1)
    {
        perror("open failed");
        return -1;
    }

    struct flow t;
    memset(&t, 0, sizeof(struct flow));
    t.num = 5;
    strcpy(t.name, "test");
    t.metric = 127;
    write(fd, &t, sizeof(struct flow));

       struct flow *p = NULL;
    p = (struct flow*)malloc(sizeof(struct flow)); 

    printf("ret1: %d\n", ret1);

    //读取
    int ret1 = lseek (fd, 0, 0);
    if (read(fd, p, sizeof(struct flow) == -1))
    {
        printf("read error\n");
        exit(1);
    }

    //没有打印信息,貌似没有读取成功
    printf("==> %d\n", p->num);
    printf("==> %s\n", p->name);
    printf("==> %d\n", p->metric);
    close(fd);
    return 0;
}



  • 写回答

2条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 3月3日
      • 已采纳回答 2月23日
      • 创建了问题 2月22日

      悬赏问题

      • ¥15 在数字信号处理中用MATLAB显示波形。
      • ¥15 keil MDK软件进行仿真调试的局限
      • ¥15 关于gateway产生临时文件夹的问题
      • ¥15 Java Broken Pipe以及OOM
      • ¥20 请问有没有RTL8211FS的参考原理图
      • ¥50 esp32的platfromio工程添加文件就会编译失败
      • ¥15 linux下运行VASP报错
      • ¥15 python里面查找赋值,如何可以在剩余未空值的行里面进行进一步的筛选呢?
      • ¥15 电路分析的综合实验有没有会的
      • ¥15 #硬件设计#PNP三级管输出设计问题