1

我正在构建一个文件恢复工具,但遇到了一个我无法弄清楚的奇怪问题。

以下代码没有失败,但 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 卷。

4

0 回答 0