fstat工作,stat不

时间:2018-03-21 18:37:46

标签: c linux file raspbian

我正在编写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()发生的事情。

1 个答案:

答案 0 :(得分:1)

这很简单。 zip不会扩展或理解stat(2)(代字号)。

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