在Linux系統中,readdir
函數用于讀取目錄中的條目。當readdir
函數遇到錯誤時,它會返回NULL,并設置全局變量errno
來指示具體的錯誤類型。以下是一些常見的errno
錯誤碼及其含義:
dirent
結構體指針指向的內存地址無效。readdir
函數的參數無效。這些錯誤碼可以幫助開發者診斷和解決在使用readdir
函數時遇到的問題。在實際編程中,建議使用perror
函數來打印具體的錯誤信息,以便更好地理解錯誤原因。例如:
#include <stdio.h>
#include <dirent.h>
#include <errno.h>
int main() {
DIR *dir = opendir(".");
if (dir == NULL) {
perror("opendir");
return 1;
}
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
在這個示例中,如果opendir
函數失敗,perror
函數會打印出具體的錯誤信息。