Открытие файлов устройства на OS X
Я создаю инструмент для восстановления файлов, и я столкнулся со странной проблемой, которую не могу понять.
Следующий код не дает сбоя, но результирующий размер файла, сообщаемый fstat, составляет 0 байт.
int f = -1;
f = open("/dev/disk2", O_RDONLY);
if (f < 0) {
printf("Unable to open file\n");
return 1;
}
struct stat s = {0};
if (fstat(f, &s) < 0) {
printf("Unable to stat\n");
return 2;
}
printf("Size: %lli\n",s.st_size);
(Я указал код на другой файл, чтобы проверить его, и он вернул размер правильно.)
Тем не менее, если я наберу следующее в терминале, он отображает содержимое диска без проблем:
cat /dev/disk2
Я использую оба как root, чтобы избежать проблем с разрешениями при тестировании. Диск является внешним томом HFS, который не подключен.