嗨,试图移植一些代码,但我不理解这里的问题,
正在获取错误-文件。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);
^^^^^^^^^^
如果结构是在某个页眉中定义的,那么您需要在这个翻译单元中包含页眉。