以下代码为我提供了不同系统的不同输出:
int fd = open(filename, O_RDWR | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO);
byte_t data[] = { 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b 0x0c, 0x0d };
write(fd, data, sizeof(data));
在mac上,文件名的'hexdump'给出了我期望的结果
00 01 02 03 0a 0b 0c 0d
在Ubuntu和Windows上(代码不同但效果相同),你得到
01 00 03 02 0b 0a 0d 0c
我想要平台打印
00 01 02 03 0a 0b 0c 0d
那我该怎么办?
答案 0 :(得分:1)
看起来像hexdump实用程序交换字节。请显示您在每个平台中使用的hexdump命令。
要确认,请使用
进行测试byte_t data[] = { 'a', 'b', 'c', 'd', 'e' }
并比较hexdump和cat(或type)输出。