C 我如何知道stat失败的原因?
我想知道文件是否与C一起存在 我看到我可以通过这个函数来实现:C 我如何知道stat失败的原因?,c,file,struct,C,File,Struct,我想知道文件是否与C一起存在 我看到我可以通过这个函数来实现: int file_exist (char *filename) { struct stat buffer; return (stat (filename, &buffer) == 0); } 但是如果文件存在,stat也会失败,但是还有一些其他错误(然后我会得到负数)。我怎么知道stat会因为文件不存在而失败呢?至少在UNIX系统中,有一个名为errno的变量可以获取您得到的确切错误。对照EFAULT检查
int file_exist (char *filename)
{
struct stat buffer;
return (stat (filename, &buffer) == 0);
}
但是如果文件存在,stat也会失败,但是还有一些其他错误(然后我会得到负数)。我怎么知道stat会因为文件不存在而失败呢?至少在UNIX系统中,有一个名为errno的变量可以获取您得到的确切错误。对照EFAULT检查它。(有关
man 2 stat
和man errno
的更多详细信息)
检查是这样的:
if (stat(path) == -1)
if (errno == EFAULT)
//file does not exist
else
//some other error occurred
至少在UNIX系统中,有一个名为errno的var可以获取您得到的确切错误。对照EFAULT检查它。(有关
man 2 stat
和man errno
的更多详细信息)
检查是这样的:
if (stat(path) == -1)
if (errno == EFAULT)
//file does not exist
else
//some other error occurred