]> Zhao Yanbai Git Server - minix.git/commitdiff
Also a change by Joren
authorBen Gras <ben@minix3.org>
Tue, 6 Sep 2005 10:15:57 +0000 (10:15 +0000)
committerBen Gras <ben@minix3.org>
Tue, 6 Sep 2005 10:15:57 +0000 (10:15 +0000)
lib/other/fdopen.c

index 9842fd94144c953c9db5c5f263ec5b343e66bedf..3a72099e8521892cf322994098dc2e8c51fad9fc 100755 (executable)
@@ -6,6 +6,7 @@
 #include       <stdlib.h>
 #include       "../stdio/loc_incl.h"
 #include       <stdio.h>
+#include       <sys/stat.h>
 
 FILE *
 fdopen(fd, mode)
@@ -13,6 +14,7 @@ int fd;
 _CONST char *mode;
 {
        register int i;
+       struct stat st;
        FILE *stream;
        int flags = 0;
 
@@ -47,6 +49,14 @@ _CONST char *mode;
                break;
        }
 
+       if ( fstat( fd, &st ) < 0 ) {
+               return (FILE *)NULL;
+       }
+       
+       if ( st.st_mode & S_IFIFO ) {
+               flags |= _IOFIFO;
+       }
+       
        if ((stream = (FILE *) malloc(sizeof(FILE))) == NULL) {
                return (FILE *)NULL;
        }