下面的代碼讓我在不同的系統不同的輸出易位:字節寫入文件被在某些平臺上
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
那麼我該如何繼續?
是「byte_t」跨兩個平臺的一致數據類型嗎? –
「代碼不同」?請向我們展示* actual *代碼,而不是一些近似值。 – NPE
我認爲你所展示的代碼會以你在任何*平臺上描述的方式行事(不管字節順序等),這是不太可能的。請包括一個SSCCE(http://sscce.org/)。 – NPE