将一段给定的数据写入32位和64位应用程序的文件时需要考虑哪些事项?

时间:2016-07-28 05:06:12

标签: c file struct cross-platform

我有3个申请。一个是写入器(32位),另外两个是读取器(一个是32位,另一个是64位)。 编写器将给定的数据写入两个文件,一个将由32位应用程序读取,另一个将由64位应用程序读取。 数据采用结构的形式,包含指向数据缓冲区的指针。以下是一个:

typedef struct userMap {
    char            customer_refid[256];
    char            cookieId[64];
    char            *authPayload;
    struct userMap *hh_prev;
    struct userMap *hh_next;
};

要在64位应用程序的文件中编写此结构,我唯一想到的是将32位指针转换为64位指针。我的意思是将char *authPayload转换为char *__ptr64 authPayload以达到目的。

我应该考虑实现相同的其他事情,因为64位应用程序进行的fread()调用返回损坏的缓冲区,如果我按原样编写结构?

注意:authPayload指向某个数据缓冲区,我将使用fwrite()将此结构写入文件。

0 个答案:

没有答案