gpt4 book ai didi

c - 使用 fstat 确定文件类型

转载 作者:太空宇宙 更新时间:2023-11-04 03:01:53 24 4
gpt4 key购买 nike

所以,我有一个作业,基本上是一个比较系统调用速度和库函数速度的练习。我们正在对通过标准输入从文件中获取的字符串进行排序。我们应该使用 fstat 来确定该文件是否为常规文件。我已经通读了手册页,虽然我知道它的作用,但我在弄清楚如何使用它时遇到了问题。

我知道它返回一个统计结构,所以我真的可以只创建一个变量并像那样存储它吗?例如:

int n;
struct stat *val;
n = fstat(0, val);

你是这样得到结构的吗?它是否在其他地方返回?我需要访问 off_t st_size 变量,所以我知道文件有多少字节。可以将其转换为 int 吗?

此外,显然您可以使用 st_mode 字段来检查文件是否正常(使用宏 S_ISREG),但是...怎么做?它会返回 true 还是 false 之类的?这很烦人,因为我可以找到所有这些文档来告诉我字段是什么,但不知道如何使用它们。

如果我有一个常规文件,我应该在任何函数调用之前分配足够的内存来存储它。如果没有,那么我会在阅读时重新分配内存。我已经完成了第二部分,我只是不知道如何正确使用 fstat。

最佳答案

fstat不分配内存,你需要给它预分配空间的地址。例如:

int n;
struct stat myStat;
n = fstat(0, &myStat);

注意缺少指针。

关于c - 使用 fstat 确定文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10561097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com