alt=”linux readdir如何實現隱藏文件讀取” />
在Linux系統中,readdir函數的作用是讀取指定目錄下的文件以及子目錄信息。通常情況下,readdir會返回目錄里的所有文件與子目錄,這其中就包含那些以點號(.)開頭的隱藏文件。要是你想讓readdir僅返回隱藏文件,那么就需要在調用readdir前對目錄內容做一定的過濾處理。
下面這段用c語言編寫的代碼,展示了一種通過readdir函數來專門獲取目錄內隱藏文件的方法:
#include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <string.h> int main(int argc, char *argv[]) { DIR *dir; struct dirent *entry; if (argc != 2) { fprintf(stderr, "Usage: %s <Directory>n", argv[0]); return EXIT_FAILURE; } dir = opendir(argv[1]); if (dir == NULL) { perror("opendir"); return EXIT_FAILURE; } while ((entry = readdir(dir)) != NULL) { if (entry->d_name[0] == '.') { printf("%sn", entry->d_name); } } closedir(dir); return EXIT_SUCCESS; }
該程序接收一個目錄路徑作為命令行參數,利用opendir函數開啟該目錄。隨后,程序運用readdir函數逐一讀取目錄內的各項記錄。當某項記錄的名字首字符為點號時(代表隱藏文件),程序便會將其輸出。最后,程序調用closedir關閉目錄。
若要構建并執行上述程序,可將其保存為list_hidden_files.c,之后執行如下指令:
gcc list_hidden_files.c -o list_hidden_files ./list_hidden_files /path/to/directory
記得把/path/to/directory替換成實際需要讀取的目錄路徑。