3
我想檢查readdir
返回的文件是否爲目錄。 我試過使用DT_DIR
常量(因爲man readdir
說),但它沒有定義。我應該包含什麼文件才能得到它?DT_DIR undefined
現在我用
#include <sys/types.h>
#include <dirent.h>
#include <stdlib.h>
#include <errno.h>
gcc版本是4.6.1
編譯字符串:
gcc a.c --std=c99 -Wall
恩,謝謝它的工作。但我想這並不總是好的。改變這個常數,因爲它可能會改變別的東西。是否以其他方式做到這一點?我自己的常量是否可以(我真的不這麼認爲)或者可能在其他操作系統上更改? (即4對於我的目錄) – RiaD 2012-02-11 16:08:01
PS:'-D_BSD_SOURCE'已經足夠了,我們不需要在這裏值 – RiaD 2012-02-11 16:10:30
使用'-D_BSD_SOURCE'不會改變任何常量。它引入了來自BSD的附加定義和函數,它們不是POSIX或標準C.如果你的代碼需要,那麼它是不可移植的。如果你希望它是可移植的,不要依賴'struct dirent'的'd_type'字段,而是使用'stat'。硬編碼'4'是一個壞主意。 – Mat 2012-02-11 16:11:45