diff --git a/libavformat/file.c b/libavformat/file.c
index 264542a36a7dd05173b6de1ce2cd1af0d5900510..3db9cd0b9e409e27f048b1b54b3309f99631e17a 100644
--- a/libavformat/file.c
+++ b/libavformat/file.c
@@ -112,6 +112,8 @@ static int file_read(URLContext *h, unsigned char *buf, int size)
     ret = read(c->fd, buf, size);
     if (ret == 0 && c->follow)
         return AVERROR(EAGAIN);
+    if (ret == 0)
+        return AVERROR_EOF;
     return (ret == -1) ? AVERROR(errno) : ret;
 }