簡體   English   中英

readdir在安裝的CIF目錄上花費很長時間

[英]readdir taking a LONG time on mounted cifs dir

我正在運行以下代碼:

void EnumerateFolder(std::string folder)
{ 
    DIR* directory;
    struct dirent* entry;

    directory = opendir(folder.c_str());
    if(directory != NULL)
    {
        while((entry = readdir(directory)) != NULL)
        {
            std::cout << entry->d_name;
        }
    }
}

當它到達我擁有readdir()的已安裝CIFS文件夾時,有時需要15分鍾才能返回。 是否有人想啟發我發生了什么以及如何獲得更友善的體驗? 每當我運行代碼並且共享文件夾的計算機脫機時,就會發生這種情況。 它也任意發生(據我所知),也許當帶有共享文件夾硬盤的計算機是“空閑”時。

您說的文件夾如何安裝?

cat /etc/fstab
//192.168.0.6/MyShare /home/MyUser/MountedShare cifs guest 0 0

192.168.0.6正在運行Windows 8,如果這很重要。 謝謝!

標准CIFS Send2超時為15秒。 如果您希望它更快地失敗,則可以在安裝選項上放置一個timeo選項。 以十分之一秒為單位指定超時。

文件系統並不真正知道應用程序為什么要讀取文件。 快速超時可能會破壞長時間運行的進程,例如,如果它們在可執行代碼頁中出錯。 因此,一般而言,網絡文件系統會嘗試模仿本地文件系統的語義,即本地存儲系統要等待所需的時間,以便基礎存儲做出響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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