[英]stat() function not returning correctly
我有這個功能
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”的目錄進行硬編碼,它們都與我的可執行文件位於同一目錄中。 任何指導將不勝感激。
if (result == -1);
return -1;
從第一行刪除分號。
從您的帖子看來,用戶安全性可能存在問題,或者目錄可能沒有適當的搜索授權。 無論如何,您都可以使用“ stat”命令進行快速測試,並檢查其是否有效。
$ stat filename.txt
是stat()返回-1時的errno將有助於理解為什么此系統調用失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.