diff --git a/configure b/configure
index 3619eff52e968c1ca7d340119dad96206d818f3b..1290369f1573c6638d29fe81a156c462682e8698 100755
--- a/configure
+++ b/configure
@@ -1093,6 +1093,7 @@ HAVE_LIST="
     ibm_asm
     inet_aton
     inline_asm
+    io_h
     isatty
     isinf
     isnan
@@ -2879,6 +2880,7 @@ check_func_headers windows.h VirtualAlloc
 check_header dlfcn.h
 check_header dxva.h
 check_header dxva2api.h
+check_header io.h
 check_header malloc.h
 check_header poll.h
 check_header sys/mman.h
diff --git a/libavformat/file.c b/libavformat/file.c
index cca9ec1a06478cbeff51e6ac6b9414cca3715cf1..0e3577d0709d398110c491d0c1326eec1222d562 100644
--- a/libavformat/file.c
+++ b/libavformat/file.c
@@ -22,10 +22,12 @@
 #include "libavutil/avstring.h"
 #include "avformat.h"
 #include <fcntl.h>
-#if HAVE_SETMODE
+#if HAVE_IO_H
 #include <io.h>
 #endif
+#if HAVE_UNISTD_H
 #include <unistd.h>
+#endif
 #include <sys/stat.h>
 #include <stdlib.h>
 #include "os_support.h"