gpt4 book ai didi

c - fstat 有效,stat 无效

转载 作者:行者123 更新时间:2023-11-30 20:19:40 24 4
gpt4 key购买 nike

我正在 Raspbian 上编译 Angband 变体,但出现以下错误:

struct stat txt_stat, raw_stat;

/* Build the filename */
path_build(buf, 1024, ANGBAND_DIR_EDIT, template_file);

/* Access stats on text file */
if (stat(buf, &txt_stat))
{
/* Error */
msg_format("Oh dear, something went wrong with stat()! %s", strerror(errno));
msg_format("Could not retrieve stats on the text file at {%s}", buf);
return (-1);
}

令我烦恼不已的是该文件位于~/git/hellband/lib/edit/r_info.txt

当我将上面的代码替换为打开文件的代码(使用相同的 buf),然后在文件描述符上使用 fstat() 时,它就可以工作了!!

我不想打开文件(并记住关闭该文件),我只是想知道/修复 stat() 发生了什么。

PostScriptum 2020;事实证明,当我使用 Angband 方法打开文件时,它会自动展开 ~ 符号,这就是它起作用的原因,并且 fstat 起作用。

最佳答案

很简单。 stat(2) 无法扩展或理解 ~(波形符)。

您可以改为HOME。例如,getenv("HOME"),然后在调用 stat(2) 之前使用您的文件名作为前缀。

关于c - fstat 有效,stat 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49414215/

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