我正在尝试使用which sinopia
检查文件。该文档指出,该函数将返回一个名为stat()
的{{1}},其中包含所有相关信息。但是,就在下面,它只是说
成功时,返回零。出错时,返回-1,并正确设置errno。
零和结构一起返回的是什么?他们都是以阵列形式返回的吗?我对C很新,我甚至不确定struct
是否可以是一个数组项。
答案 0 :(得分:4)
你必须将指针传递给该类型的结构,它将被填充。
是的,措辞有点令人困惑,但这意味着函数返回 0或-1,并且'返回'您在参数中需要的数据。点击此处:http://codewiki.wikidot.com/c:system-calls:stat
答案 1 :(得分:1)
返回值是成功还是错误,您将struct stat
的地址作为参数之一传递
检查错误,如果没有(返回值为0
),则假设传递的stuct stat
现在有有效信息:http://linux.die.net/man/2/stat
答案 2 :(得分:1)
看一个非常简单的例子:
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
int main()
{
char *fd= "test.txt";
int y;
struct stat buf;
y = stat(fd,&buf);
if(y == 0) {
int size = buf.st_size;
printf("%d",size); }
}
成功时,返回零。出错时,返回-1,错误是 适当地设定。
此处stat
返回y的值。y
的可能值为0,-1或任何errno。我希望你能得到这个。