【发布时间】:2019-09-16 13:58:35
【问题描述】:
我正在尝试将二进制文件直接转换为结构。我可以在 c 上做到这一点,但我不知道如何在 vala 上做到这一点。我把 C 和 Vala 代码示例放在下面。
struct Header
{
char name[30]; // PK2 internal name
uint32_t version; // version
uint8_t encryption; // does have encryption?
uint8_t verify[16]; // used to test the blowfish key
uint8_t reserved[205]; // unused
};
read_count = fread(&m_header, 1, sizeof(Header), m_file);
if(read_count != sizeof(Header))
{
fclose(m_file);
}
我正在尝试对 vala 做同样的事情。但我从来没有。
struct Header
{
char Header[30]; //JoyMax File Manager!
uint Version; //0x02000001
uint8 Encrypted;
uint8 Verify[16]; // Used to test the blowfish key
uint8 reserved[205]; // Unused
}
void main()
{
var file = FileStream.open ("file.bin","r+");
char name[30] = {0};
file.gets (name);
print((string)name);
}
有没有办法像 fread 一样直接从文件转换为结构?
【问题讨论】:
标签: filestream vala