我正在运行下列程序,该程序使用stat()
来检查文件是否存在。但是,当我通过一条路径说,$HOME/file.sh
,它会失败,并出现ENOENT
错误。但是,当我经过扩充的路径即/root/file.sh
,stat()
回报成功退出即代码0状态返回ENOENT
int main()
{
struct stat statbuf;
char path [1024];
strcpy(path,"$HOME/file.sh");
int rc = stat(path,&statbuf);
if (rc == -1)
{
printf ("File not found !!\n");
}
else
printf("Found it !!\n");
return 0;
}
$ HOME对shell脚本有意义,但对C程序没有意义。您要求stat在当前工作目录下的名为$ HOME的目录中查找名为file.sh的文件。 – Scooter