3

我需要将一个结构存储在一个文件中,然后将其读回以返回它。我会尝试将其写入文件,如下所示:

void lld_tpWriteCalibration(struct cal cal) {
    FIL fdst;      /* file objects */
   UINT bw;        /* File write count */

    /* Create destination file on the drive 0 */
    wf_open(&fdst, "0:calibration.txt", FA_CREATE_ALWAYS | FA_WRITE);
    wf_write(&fdst, cal, sizeof(cal), &bw);

    wf_close(&fdst);
}

那行得通吗?我怎样才能读回它并从这个函数中返回它?

struct cal lld_tpReadCalibration(void) {

}

结构是:

   struct cal {
       float xm; 
       float ym; 
       float xn; 
       float yn; 
   };

谢谢你的帮助。

4

2 回答 2

5

您可以以与存储结构相同的方式检索结构。

read(&fdst, &cal, sizeof(cal));

但是你必须小心,因为字节序问题,你不能在每个架构上都这样做。

于 2012-10-05T20:43:30.237 回答
1

如果您只尝试在与写入文件相同类型的机器上读取文件,那么您将可以使用该结构和写入/读取技术。像这样写入的数据不能在不同类型的机器之间可靠地移植。

于 2012-10-05T20:50:16.017 回答