Python 3 - os.dup2() 方法

  • 描述

    方法dup2()重复文件描述符fdfd2, 如有必要,先关闭后者。
    Note− 新文件描述仅在可用时分配。在下面给出的示例中,如果 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!!