我正在编写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()
发生的事情。
答案 0 :(得分:1)
这很简单。 zip
不会扩展或理解stat(2)
(代字号)。
你可以改为~
。例如,HOME
然后在调用getenv("HOME")
之前使用您的文件名作为前缀。