调试BUG时发现,以下问题:
由代码中发现
BYTES_INVALID 定义如下:
奇怪问题:在于file->write_size == -1; 但是if判断中却没有走到contine代码分支, 而是继续走到 validate.c 351行输出;
关于数据结构定义如下:
1 | typedef struct pgFile |
查看sizeof大小:
1 | sizeof(size_t) |
window: 8字节;
linux: 8字节;
size_t 是
sizeof
、_Alignof
(C11 起) 和 offsetof 的结果的无符号整数类型,定义取决于数据模型。
size_t 定义如下:
1 | typedef unsigned int size_t; //8Byte |
Linux size_t 应该用 %u
标识, 即 -1 应该为 4294967295;
按照内存格式输出:
1 | printf("%u %d", -1, -1); |
输出为
1 | 4294967295 -1 |
即修改代码:
1 |