home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / news / cnews.tar / libc / stdfdopen.c < prev    next >
C/C++ Source or Header  |  1990-10-28  |  562b  |  29 lines

  1. /*
  2.  * stdfdopen - ensure that the standard i/o descriptors are open,
  3.  *    to avoid mayhem.
  4.  */
  5.  
  6. #include <stdio.h>
  7. #include <errno.h>
  8. #ifndef __STDC__
  9. extern int errno;
  10. #endif
  11. #include <sys/types.h>
  12. #include <sys/stat.h>
  13.  
  14. #ifndef NSYSFILE
  15. #define NSYSFILE 3                    /* hmm, not on V8 */
  16. #endif
  17.  
  18. void
  19. stdfdopen()            /* ensure standard descriptors are open */
  20. {
  21.     register int fd;
  22.     struct stat stbuf;
  23.  
  24.     for (fd = 0; fd < NSYSFILE; fd++)
  25.         if (fstat(fd, &stbuf) < 0 && errno == EBADF)
  26.             if (open("/dev/null", 2) != fd)    /* open read/write */
  27.                 exit(1);        /* bad news */
  28. }
  29.