Python | os.dup() method - GeeksforGeeks

13 Jul, 2021
OS module in Python provides functions for interacting with the operating system. OS comes under Python’s standard utility modules. This module provides a portable way of using operating system dependent functionality.
A file descriptor is small integer value that corresponds to a file or other input/output resource, such as a pipe or network socket. A File descriptor is an abstract indicator of a resource and act as handle to perform various lower level I/O operations like read, write, send etc. 
For Example: Standard input is usually file descriptor with value 0, standard output is usually file descriptor with value 1 and standard error is usually file descriptor with value 2. Further files opened by the current process will get the value 3, 4, 5 an so on.
os.dup() method in Python is used to duplicate the given file descriptor. The duplicated file descriptor is non-inheritable, But on Windows platform, file descriptor associated with standard stream (standard input: 0, standard output: 1, standard error: 2) which can be inherited by child processes.
Inheritable file descriptor means if the parent process has a file descriptor 4 in use for a particular file and parent creates a child process then the child process will also have file descriptor 4 in use for that same file.  
Syntax: os.dup(fd) Parameter: fd: A file descriptor, which is to be duplicated. Return Type: This method returns the duplicated file descriptor, which is an integer value.  
Code: Use of os.dup() method to duplicate a file descriptor  
Python3
# Python3 program to explain os.dup() method   # importing os moduleimport os # File pathpath = "/home/ihritik/Desktop/file.txt"  # open the file and get# the file descriptor associated# with it using os.open() methodfd = os.open(path, os.O_WRONLY) # Print the value of# file descriptorprint("Original file descriptor:", fd) # Duplicate the file descriptordup_fd = os.dup(fd) # The duplicated file will have# different value but it# will correspond to the same# file to which original file# descriptor was referring # Print the value of# duplicated file descriptorprint("Duplicated file descriptor:", dup_fd)  # Get the list of all# file Descriptors Used# by the current Process# (below code works on UNIX systems)pid = os.getpid()os.system("ls -l/proc/%s/fd" %pid) # Close file descriptorsos.close(fd)os.close(dup_fd) print("File descriptor duplicated successfully")
Original file descriptor: 3
Duplicated file descriptor: 4
total 0
lrwx------ 1 ihritik ihritik 64 Jun 14 06:45 0 -> /dev/pts/0
lrwx------ 1 ihritik ihritik 64 Jun 14 06:45 1 -> /dev/pts/0
lrwx------ 1 ihritik ihritik 64 Jun 14 06:45 2 -> /dev/pts/0
l-wx------ 1 ihritik ihritik 64 Jun 14 06:45 3 -> /home/ihritik/Desktop/file.txt
l-wx------ 1 ihritik ihritik 64 Jun 14 06:45 4 -> /home/ihritik/Desktop/file.txt
File descriptor duplicated successfully
 
kalrap615
python-os-module
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
How to Install PIP on Windows ?
How to drop one or multiple columns in Pandas Dataframe
Selecting rows in pandas DataFrame based on conditions
How To Convert Python Dictionary To JSON?
Check if element exists in list in Python
Python | os.path.join() method
Python | Get unique values from a list
Create a directory in Python
Defaultdict in Python
Python | Pandas dataframe.groupby()