Perl Programming Documentation
Download Perl
Explore

Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

Tools

- Preferences

# fileno

Perl 5 version 26.0 documentation
Go to top
Show recent pages
Recently read

# fileno

Perl functions A-Z | Perl functions by category | The 'perlfunc' manpage

- fileno FILEHANDLE

  Returns the file descriptor for a filehandle, or undefined if the filehandle is not open. If there is no real file descriptor at the OS level, as can happen with filehandles connected to memory objects via open with a reference for the third argument, -1 is returned.

  This is mainly useful for constructing bitmaps for select and low-level POSIX tty-handling operations. If FILEHANDLE is an expression, the value is taken as an indirect filehandle, generally its name.

  You can use this to find out whether two handles refer to the same underlying descriptor:

          if (fileno($this) != -1 && fileno($this) == fileno($that)) {        print "\$this and \$that are dups\n";    } elsif (fileno($this) != -1 && fileno($that) != -1) {        print "\$this and \$that have different " .            "underlying file descriptors\n";    } else {        print "At least one of \$this and \$that does " .            "not have a real file descriptor\n";    }

  The behavior of fileno on a directory handle depends on the operating system. On a system with dirfd(3) or similar, fileno on a directory handle returns the underlying file descriptor associated with the handle; on systems with no such support, it returns the undefined value, and sets $! (errno).