0

我有功能:

gint isfileexists(gchar *filename) 
{
struct stat buffer; 
gint i = stat(filename, &buffer);
if (i == 0) {
   return 1;
}
return 0;
}

如果我打电话给他们:

isfileexists("/etc/myfile")

它在“/home/user/etc/myfile”中搜索“myfile”。如何做好这件事?

4

1 回答 1

3

它应该只寻找以下/home/USER/etc/myfile情况:

  • /你在调用时离开了前导isfileexists;和
  • 该目录/home/USER是您当前的工作目录。

换句话说,如果参数是相对路径名。

由于您前导/,它将是一个绝对路径名并且应该访问/etc/myfile

如果我误解了并且您实际上想要在您的主目录中使用一个,您可以使用来获取您的主目录,getenv("HOME")然后附加/etc/myfile. strcat无论您当前的工作目录如何,这也将起作用。

于 2013-08-04T22:49:39.350 回答