(linenum→info "unix/slp.c:2238")

glibc/2.7/libio/fileno.c

    1: /* Copyright (C) 1993,95,96,97,2002 Free Software Foundation, Inc.
    2:    This file is part of the GNU C Library.
    3: 
    4:    The GNU C Library is free software; you can redistribute it and/or
    5:    modify it under the terms of the GNU Lesser General Public
    6:    License as published by the Free Software Foundation; either
    7:    version 2.1 of the License, or (at your option) any later version.
    8: 
    9:    The GNU C Library is distributed in the hope that it will be useful,
   10:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   11:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   12:    Lesser General Public License for more details.
   13: 
   14:    You should have received a copy of the GNU Lesser General Public
   15:    License along with the GNU C Library; if not, write to the Free
   16:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   17:    02111-1307 USA.
   18: 
   19:    As a special exception, if you link the code in this file with
   20:    files compiled with a GNU compiler to produce an executable,
   21:    that does not cause the resulting executable to be covered by
   22:    the GNU Lesser General Public License.  This exception does not
   23:    however invalidate any other reasons why the executable file
   24:    might be covered by the GNU Lesser General Public License.
   25:    This exception applies to code released by its copyright holders
   26:    in files containing the exception.  */
   27: 
   28: #include "libioP.h"
   29: #include <stdio.h>
   30: 
   31: int
   32: fileno (fp)
   33:      _IO_FILE* fp;
   34: {
   35:   CHECK_FILE (fp, EOF);
   36: 
   37:   if (!(fp->_flags & _IO_IS_FILEBUF) || _IO_fileno (fp) < 0)
   38:     {
   39:       __set_errno (EBADF);
   40:       return -1;
   41:     }
   42: 
   43:   return _IO_fileno (fp);
   44: }
   45: libc_hidden_def (fileno)
   46: 
   47: #ifdef weak_alias
   48: /* The fileno implementation for libio does not require locking because
   49:    it only accesses once a single variable and this is already atomic
   50:    (at least at thread level).  Therefore we don't test _IO_MTSAFE_IO here.  */
   51: 
   52: weak_alias (fileno, fileno_unlocked)
   53: #endif
Syntax (Markdown)