簡體   English   中英

stat()函數未正確返回

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM