我正在運行下列程序,該程序使用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