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