stat 返回值为-1,文件无法打开
程序为
```c
if (stat(path, &st) == 0) {
if ((S_ISREG(st.st_mode)) && (!S_ISDIR(st.st_mode))) {
return(1);
} else {
return(0);
}
}
perror("stat");
输出为
stat: No such file or directory
然后path的值为
```c
0x7fffffffcf10 ./home/gzm/ucvm-19.4.0/conf/ucvm.conf
参考GPT和自己的思路:
根据你提供的信息,很明显该程序无法打开指定的文件,因为文件不存在或路径错误。你需要确保指定的文件路径是正确的,并且文件存在于该路径中。另外,还要检查是否有访问指定路径的权限。
此外,建议对程序中的错误处理进行改进,以增加程序的健壮性。例如,可以在程序中检查文件是否存在,如果不存在则提示用户并且退出程序。另外,可以考虑使用 strerror 函数打印更加详细的错误信息,以帮助排查文件打开失败的原因。
"No such file or directory" 可以判断文件或目录不存在。
你可以先检查路径是否正确呢?路径中包含的目录和文件名是否正确拼写,是否存在该目录和文件。
也可以使用命令行终端或文件管理器确认文件是否存在。如果文件确实存在,可以检查文件是否有读取权限,以及当前用户是否有读取该文件的权限。
如果以上回答对您有所帮助,望采纳~谢谢
检查文件的路径是否存在,权限问题等