我正在尝试使用返回的st_mode
结构中的stat
,这是我从stat()
调用获得的结果;
char *fn = "test.c"
struct stat *buf = malloc(sizeof(stat));
stat(fn,buf);
if(S_ISREG(buf.st_mode))
{
printf("this file is a regular file..."); //if regular
}
当我尝试编译此代码时,出现以下错误:
server1.c: In function ‘main’:
server1.c:223:32: error: request for member ‘st_mode’ in something not
a structure or union
if(S_ISREG(fileData.st_mode))
^
为什么我会收到此编译错误?我自己似乎找不到太多信息..
答案 0 :(得分:1)
buf
不是struct stat
。 buf
是指向struct stat
的指针,指针不具有st_mode
个字段。要获取st_mode
指向的struct stat
的buf
字段,请使用(*buf).st_mode
或简称buf->st_mode
。