'\" t .\" Copyright 1990-1991, The Regents of the University of California. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .TH fileno 3 (date) "Linux man-pages (unreleased)" .SH NAME fileno \- obtain file descriptor of a stdio stream .SH LIBRARY Standard C library .RI ( libc ,\~ \-lc ) .SH SYNOPSIS .nf .B #include .P .BI "int fileno(FILE *" stream ); .fi .P .RS -4 Feature Test Macro Requirements for glibc (see .BR feature_test_macros (7)): .RE .P .BR fileno (): .nf _POSIX_C_SOURCE .fi .SH DESCRIPTION The function .BR fileno () examines the argument .I stream and returns the integer file descriptor used to implement this stream. The file descriptor is still owned by .I stream and will be closed when .BR fclose (3) is called. Duplicate the file descriptor with .BR dup (2) before passing it to code that might close it. .P For the nonlocking counterpart, see .BR unlocked_stdio (3). .SH RETURN VALUE On success, .BR fileno () returns the file descriptor associated with .IR stream . On failure, \-1 is returned and .I errno is set to indicate the error. .SH ERRORS .TP .B EBADF .I stream is not associated with a file. .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7). .TS allbox; lbx lb lb l l l. Interface Attribute Value T{ .na .nh .BR fileno () T} Thread safety MT-Safe .TE .SH STANDARDS POSIX.1-2008. .SH HISTORY POSIX.1-2001. .SH SEE ALSO .BR open (2), .BR fdopen (3), .BR stdio (3), .BR unlocked_stdio (3)