我将文件大小存储在二进制文件中,我可以将此文件大小存储到char[8]
缓冲区中。我想将此char[]
转换为off_t
类型,以便能够将它作为参数truncate(const char *path, off_t length)
传递。将char []转换为off_t
我试过这种天真的方法,它似乎大部分时间工作,但它有时失败,给了我一个奇怪的位序列。
off_t pchar_2_off_t(char* str, size_t size)
{
off_t ret = 0;
size_t i;
for (i = 0; i < size; ++i)
{
ret <<= 8;
ret |= str[i];
}
return ret;
}
转换的'STR [1]'以某种签名:'RET | =(无符号)STR [1];' – pmg 2015-02-07 15:14:30
你知道,如果你的编译器'char'类型是有符号还是无符号?这可能与它有关,可能是文件的实际*写入。 – 2015-02-07 15:14:38
@pmg>它看起来没有任何作用。转换失败。 – user1527491 2015-02-07 15:19:09