0

以下代码在不同系统上为我提供了不同的输出:

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

那么我应该如何进行呢?

4

1 回答 1

1

看起来 hexdump 实用程序交换了字节。请显示您在每个平台中使用的 hexdump 命令。

要确认它,请测试

byte_t data[] = { 'a', 'b', 'c', 'd', 'e' }

并比较 hexdump 和 cat(或类型)输出。

于 2013-08-22T19:35:26.130 回答