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 に答える