C++ stat()函数未正确返回
我有这个功能C++ stat()函数未正确返回,c++,c,linux,unix,stat,C++,C,Linux,Unix,Stat,我有这个功能 long processFile(char * fileName) { struct stat statBuf; mode_t mode; int result; result = stat(fileName, &statBuf); if (result == -1); return -1; if(S_ISDIR(mode)) return(processDirectory(fileName))
long processFile(char * fileName)
{
struct stat statBuf;
mode_t mode;
int result;
result = stat(fileName, &statBuf);
if (result == -1);
return -1;
if(S_ISDIR(mode))
return(processDirectory(fileName));
else
return 1;
}
如果“fileName”是一个实际文件,我希望它返回一个,但如果“fileName”是一个目录,我希望它转到名为
processDirectory
的函数。出于某种原因,无论我做什么,stat()
调用都会不断返回-1
。我尝试过对文件名“test.txt”和名为“/test”的目录进行编码,这两个目录都与我的可执行文件位于同一目录中。任何指导都将不胜感激 从您的帖子中可以看出,用户安全可能有问题,或者目录可能没有适当的搜索授权。无论如何,您可以使用“stat”命令进行快速测试,并检查其是否正常工作
$stat filename.txt
在stat()返回-1时,Yes errno有助于理解此系统调用失败的原因。从您的帖子中可以看出,用户安全性可能有问题,或者目录可能没有适当的搜索授权。无论如何,您可以使用“stat”命令进行快速测试,并检查其是否正常工作
if (result == -1);
return -1;
$stat filename.txt
stat()返回-1时的Yes errno有助于理解此系统调用失败的原因
if (result == -1);
return -1;
从第一行中删除分号
从第一行中删除分号。错误号的值为?是。就像它在
stat(2)
手册页的返回值部分所说的那样使用{perror(“stat”);返回-1;}哇,这里真是太盲目了。。。请看我的答案。顺便说一句,你在谷歌“goto fail”这个错误的“good”公司里。errno的值是?是的。就像它在stat(2)
手册页的返回值部分所说的那样使用{perror(“stat”);返回-1;}哇,这里真是太盲目了。。。请看我的答案。顺便说一句,你与谷歌“goto fail”这一错误有着“良好”的关系。除此之外,这不是一个正确的问题(请看我的答案),这根本不是一个答案,而是一个评论。请以评论的形式发表评论(你现在有足够的代表这样做),而不是以答案的形式发表评论。除此之外,这不是一个正确的问题(见我的答案),这根本不是一个答案,而是一个评论。请将评论作为评论(你现在有足够的代表这样做),而不是作为答案。是的,苹果也一样:是的,苹果也一样: