語言編程
LINUX系統下的一個頭檔案,在這個目錄下/usr/include
為了獲取某資料夾目錄內容,所使用的結構體。
引用頭檔案#include
結構體說明
struct dirent
{
long d_ino; /* inode number 索引節點號 */
off_t d_off; /* offset to this dirent 在目錄檔案中的偏移 */
unsigned short d_reclen; /* length of this d_name 檔案名稱長 */
unsigned char d_type; /* the type of d_name 檔案類型 */
char d_name [NAME_MAX+1]; /* file name (null-terminated) 檔案名稱,最長256字元 */
}
相關函式
opendir(),readdir(),closedir();
使用實例
#include #include
#include #include
#include
#ifndef DT_DIR
#error "DT_DIR not defined, maybe d_type not a mumber of struct dirent!"
#endif
int
main(int argc, char*argv[])
{
staticchar dot[] =".", dotdot[] ="..";
constchar*name;
DIR *dirp;
struct dirent *dp;
if (argc ==2)
name = argv[1];
else
name = dot;
dirp = opendir(name);
if (dirp == NULL) {
(void)fprintf(stderr, "%s: opendir(): %s: %s\n",
argv[0], name, strerror(errno));
exit(errno);
}
while ((dp = readdir(dirp)) != NULL) {
if (dp->d_type == DT_DIR)
if ( strcmp(dp->d_name, dot)
&& strcmp(dp->d_name, dotdot) )
(void)printf("%s/\n", dp->d_name);
}
(void)closedir(dirp);
return (0);
}