'\" t .\" Copyright (c) 1990, 1991 The Regents of the University of California. .\" and Copyright (C) 2021 Michael Kerrisk .\" All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Chris Torek and the American National Standards Committee X3, .\" on Information Processing Systems. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" Converted for Linux, Mon Nov 29 14:24:40 1993, faith@cs.unc.edu .\" Added remark on EBADF for fileno, aeb, 2001-03-22 .\" .TH fileno 3 2023-10-31 "Linux man-pages 6.7" .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)