Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* close.c -- close a file descriptor.
  2.  *
  3.  * Copyright (c) 1995 Cygnus Support
  4.  *
  5.  * The authors hereby grant permission to use, copy, modify, distribute,
  6.  * and license this software and its documentation for any purpose, provided
  7.  * that existing copyright notices are retained in all copies and that this
  8.  * notice is included verbatim in any distributions. No written agreement,
  9.  * license, or royalty fee is required for any of the authorized uses.
  10.  * Modifications to this software may be copyrighted by their authors
  11.  * and need not follow the licensing terms described here, provided that
  12.  * the new terms are clearly indicated on the first page of each file where
  13.  * they apply.
  14.  */
  15. #include <errno.h>
  16. #include <stdlib.h>
  17. #include <sys/unistd.h>
  18. #include <sys/kos_io.h>
  19. #include "glue.h"
  20. #include "io.h"
  21.  
  22. int
  23. _DEFUN (close ,(fd),
  24.        int fd)
  25. {
  26.     __io_handle *ioh;
  27.  
  28.     if( (fd < 0) || (fd >=64) )
  29.     {
  30.         errno = EBADF;
  31.         return (-1);
  32.     };
  33.  
  34.     ioh = &__io_tab[fd];
  35.  
  36.     if( fd > STDERR_FILENO )
  37.     {
  38.         free(ioh->name);
  39.         __io_free(fd);
  40.     }
  41.  
  42.     return (0);
  43. }
  44.