FileStream ведет себя по-разному в Linux - PullRequest
0 голосов
/ 22 октября 2018

(DotNet Core 2.1) Я использую FileStream для записи байтов в файл.Разработка под Windows и таргетирование Yocto Linux на 32-битном процессоре ARM.

При работе в Windows я получаю правильный полученный файл.Тот же код, работающий в Linux, создает неправильный файл.

Помещение обоих файлов в систему Linux и проверка их командой «file» дает разные результаты:

$ file pc.iso  # <-- GOOD
pc.iso: data

$ file linux.iso # <-- BAD
linux.iso: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "mkfs.fat", 
sectors/cluster 64, reserved sectors 64, Media descriptor 0xf8, sectors/track
63, heads 255, sectors 100000000 (volumes > 32 MB), FAT (32 bit), sectors/FAT
12224, reserved 0x1, serial number 0x53ab8ba2, unlabeled

Пример кода:

using (var stream = new FileStream(path, FileMode.Open, FileAccess.Write, FileShare.None, 4096, FileOptions.WriteThrough ))
{
    stream.Seek(start, SeekOrigin.Begin);

    for (int i = 0; i < amount; i++)
    {
        var bytes = GetBytes(i);
        stream.Write(bytes, 0, bytes.Length);
    }
}

Почему что-то подобное приводит к другим результатам в Linux?И / или как я могу предотвратить создание образа FAT32?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...