(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?