C - 变量的类型不完整 'struct stat'



嗨,试图移植一些代码,但我不理解这里的问题,

正在获取错误-文件。c:370:17:错误:变量具有不完整的类型"struct-stat">

这是引发错误的代码

int srcfd, destfd;
int nread;
char ifc[PROPERTY_VALUE_MAX];
char *pbuf;
char *sptr;
struct stat sb;
if (stat(config_file, &sb) != 0)
return -1;
pbuf = malloc(sb.st_size + PROPERTY_VALUE_MAX);
if (!pbuf)
return 0;

我读过关于不完整类型和头文件中定义的各种stackerflow问题,但我不知道如何实现这些问题。我试着移动函数,在头文件中声明它,并在函数外部声明它。但是得到相同的错误。

结构struct stat仅声明而未定义。

struct stat sb;

因此,编译器不知道这种结构类型的对象需要多少内存,也不知道该结构是否确实具有该语句中使用的数据成员st_size

pbuf = malloc(sb.st_size + PROPERTY_VALUE_MAX);
^^^^^^^^^^

如果结构是在某个页眉中定义的,那么您需要在这个翻译单元中包含页眉。

最新更新