我以为我理解 fstat,我错了。
我需要知道文件的大小,然后从文件中读取。
fileN
具有文件的路径和文件的名称。它看起来像这样。0.txt
struct stat fileStat;
FILE *fp;
int fd = 0;
int i;
for(i = 0; i < 100; i++)
{
fp = fopen(fileN, "r");
fd = open(fileN, "r"); // I think this is eating my files and making them 0 size.
fstat(fd, $fileStat);
printf("%d", fileStat.st_size);
fclose(fp);
}
为什么我需要fd = open(fileN, "r");
使用 fstat?感觉就像我打开文件两次。
如果 fileStat 是一个结构,为什么我要使用fileStat.st_size
而不是fileStat->st_size
像我在创建自己的结构时那样使用?示例:myString->characters
;
为什么上面的代码在printf
执行时会打印 0?是的,文件的大小大于 0,我有正确的文件名和路径。
上面的所有代码都是我对在 Google 上搜索并与我的试错实现混合的代码的解释。这就是为什么我有这么多问题。
编辑:解决方案:open() 被调用错误并影响文件。