在Linux系統中,readdir
函數用于讀取目錄中的條目。當readdir
函數遇到錯誤時,它會返回NULL,并設置相應的errno值來指示錯誤的類型。以下是一些常見的errno值及其含義:
EACCES:權限不足,無法訪問目錄。
EAGAIN:資源暫時不可用。
EBADF:無效的文件描述符。
EDEADLK:文件系統死鎖。
ELOOP:符號鏈接循環。
EMFILE:打開的文件描述符數量已達到系統限制。
ENAMETOOLONG:目錄名過長。
ENOENT:目錄不存在或無法訪問。
ENOTDIR:文件名不是目錄。
EISDIR:文件名是目錄。
EINVAL:無效的參數。
ENOMEM:內存不足。
ENOTEMPTY:目錄非空。
ENOTSUP:不支持的操作。
ETXTBSY:文本文件正在被使用。
ELOOP:符號鏈接循環。
EIO:輸入/輸出錯誤。
ENOSPC:磁盤空間不足。
EDQUOT:磁盤配額超限。
EREMOTEIO:遠程I/O錯誤。
EINTERRUPT:系統調用被信號中斷。
EINPROGRESS:操作正在進行中。
EALREADY:操作已經在進行中。
ENOTSOCK:文件描述符不是套接字。
EDESTADDRREQ:目標地址缺失。
EMSGSIZE:消息太大。
EPROTOTYPE:協議類型錯誤。
ENOPROTOOPT:協議選項缺失。
EPROTONOSUPPORT:不支持的協議。
ESOCKTNOSUPPORT:不支持的套接字類型。
EOPNOTSUPP:操作不被支持。
EPFNOSUPPORT:文件系統不支持該功能。
EAFNOSUPPORT:地址族不支持。
EADDRINUSE:地址已在本地使用。
EADDRNOTAVAIL:無法獲取本地地址。
ENETDOWN:網絡接口已關閉。
ENETUNREACH:網絡不可達。
ENETRESET:網絡連接重置。
ECONNABORTED:連接被中止。
ECONNRESET:連接被重置。
ENOBUFS:沒有可用的緩沖區。
EISCONN:套接字已連接。
ENOTCONN:套接字未連接。
ESHUTDOWN:套接字已關閉。
ETOOMANYREFS:引用計數過多。
ETIMEDOUT:操作超時。
ECONNREFUSED:連接被拒絕。
EHOSTDOWN:主機已關閉。
EHOSTUNREACH:無法到達主機。
ENOTEMPTY:目錄非空。
EPROCLIM:進程數量超過限制。
EUSERS:用戶數量超過限制。
EDQUOT:磁盤配額超限。
ESTALE:文件系統中的文件已過時。
EREMOTE:遠程錯誤。
EBADRPC:遠程過程調用錯誤。
ERPCMISMATCH:遠程過程調用參數不匹配。
EPROGUNAVAIL:遠程程序不可用。
EPROGMISMATCH:遠程程序版本不匹配。
EPROCUNAVAIL:遠程程序不可用。
請注意,這些errno值并非全部與readdir
函數相關,但它們是在使用readdir
時可能遇到的常見錯誤。在實際編程中,建議查閱相關文檔以獲取更詳細的信息。