dup2()方法复制文件描述符fd到fd2,如果必要之后就关闭它。
注意:只有在新的文件描述可用时才被分配。 在下面给出的下面的例子中,1000在可用时,1000将被分配作为重复的fd。
语法
以下是 dup2()方法的语法:
os.dup2(fd, fd2)
参数
-
fd -- 这是要被复制的文件描述符
-
fd2 -- 这是重复的文件描述符
返回值
这个方法返回文件描述符的副本。
示例
下面的示例说明 dup2() 方法的使用。
#!/usr/bin/python3 import os, sys # Open a file fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT ) # Write one string using duplicate fd line="this is test" # string needs to be converted byte object b=str.encode(line) os.write(fd, b) # Now duplicate this file descriptor as 1000 fd2 = 1000 os.dup2(fd, fd2); # Now read this file from the beginning using fd2. os.lseek(fd2, 0, 0) line = os.read(fd2, 100) str=line.decode() print ("Read String is : ", str) # Close opened file os.closerange( fd,fd2 ) print ("Closed the file successfully!!")
当我们运行上面的程序,它会产生以下结果:
Read String is : This is test Closed the file successfully!!