统计不起作用

时间:2012-01-08 16:38:47

标签: c++ c macos

我正在写一个文件监视器和stat因为某些原因无法获取文件信息,为什么?


struct stat info;
int fd = open(path, O_EVTONLY);
if (fd <= 0){
    exit(-1);
}
int result = fstat(fd, &info);
if (!result){
    exit(-1); //This happens! Errno says "No such file or directory" but that cant be because open would've failed
}

3 个答案:

答案 0 :(得分:4)

int result = fstat(fd, &info);
if (!result){
    exit(-1);
}

检查fstat手册页,返回成功0。

答案 1 :(得分:3)

成功时,

stat返回零,大多数标准libc函数也是如此。

这是这样设计的,因此您可以轻松检查一系列库调用中的错误:

if (stat(fd, &info)) {
    perror("stat");
    exit(1);
}
//stat succeeded.

if (...) {

}

答案 2 :(得分:1)

根据您的使用情况,我假设您需要fstat()。 fstat()接受fd作为参数,stat()接受字符串。