Hiện nay tôi có một số mã như (ngưng tụ và loại bỏ một loạt các kiểm tra lỗi):chéo nền tảng cách kiểm tra xem một tập tin là một thư mục
dp = readdir(dir);
if (dp->d_type == DT_DIR) {
}
này hoạt động thuận buồm xuôi trên máy Linux của tôi. Tuy nhiên trên máy khác (trông giống như SunOS, sparc):
SunOS HOST 5.10 Generic_127127-11 sun4u sparc SUNW,Ultra-5_10
tôi nhận được lỗi sau tại thời gian biên dịch:
error: structure has no member named `d_type'
error: `DT_DIR' undeclared (first use in this function)
Tôi nghĩ dirent.h
tiêu đề là crossplatform (đối với máy POSIX). Bất kỳ đề xuất.
Khi tôi thấy nhiều nền tảng, tôi có xu hướng giả sử bạn có nghĩa là Windows và có thể là OS/2. :-) Câu trả lời cho chỉ Posix là dễ dàng, và ai đó đã cho nó. – Omnifarious