diff --git a/src/header/dirent/mod.rs b/src/header/dirent/mod.rs
index 917a9e2a9e18e8d2e2620fb5d12bf88e3e35a69c..76b061a35669a7d960ea23f37fb501fc7287ec77 100644
--- a/src/header/dirent/mod.rs
+++ b/src/header/dirent/mod.rs
@@ -68,6 +68,11 @@ pub unsafe extern "C" fn closedir(dir: *mut DIR) -> c_int {
     ret
 }
 
+#[no_mangle]
+pub unsafe extern "C" fn dirfd(dir: *mut DIR) -> c_int {
+    *((*dir).file)
+}
+
 #[no_mangle]
 pub unsafe extern "C" fn readdir(dir: *mut DIR) -> *mut dirent {
     if (*dir).index >= (*dir).len {