Почему od и мой код на C++ читаются с порядком байтов, отличным от того, который отображается в шестнадцатеричных редактC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему od и мой код на C++ читаются с порядком байтов, отличным от того, который отображается в шестнадцатеричных редакт

Сообщение Anonymous »

Я заметил странное поведение, когда od -H и шестнадцатеричный редактор Vim (откройте файл и используйте команду :%!xxd) отображают разный порядок байтов для одних и тех же данных. Я написал код на C++, который выгружает первый uint32_t из файла, и его порядок байтов совпадает с порядком байтов od, а не с тем, что отображается в шестнадцатеричном редакторе: :

Код: Выделить всё

#include 
#include 
#include 
#include 

std::vector ReadFile(const std::string &filename) {
FILE *file = fopen(filename.c_str(), "rb");
if (file == NULL) {
throw std::runtime_error("Error opening file: " + filename);
}

fseek(file, 0L, SEEK_END);
size_t file_size = ftell(file);
rewind(file);

std::vector buffer(file_size);
size_t bytes_read = fread(buffer.data(), 1, file_size, file);
if (bytes_read != file_size) {
fclose(file);
throw std::runtime_error("Error reading file: " + filename);
}
fclose(file);
return buffer;
}

int main(int argc, char **argv) {
if (argc != 2) {
std::cerr 

Подробнее здесь: [url]https://stackoverflow.com/questions/78487231/why-does-od-and-my-c-code-read-in-a-different-endianness-than-what-is-rendered[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»