Открытие файлов устройства на 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, который не подключен.

0 ответов

Другие вопросы по тегам