在OS X上打开设备文件

时间:2016-08-05 00:51:38

标签: c macos hfs+

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

以下代码不会失败,但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 个答案:

没有答案