Python os.fpathconf() 方法



Python OS 模块的 os.fpathconf() 方法检索与打开的文件描述符相关的配置信息。当我们需要检查系统级属性时,会用到它。

如果我们将无效的配置值传递给此方法,则会引发 ValueError 异常。

注意:Python os.fpathconf() 只能在 UNIX 平台上工作。

语法

以下是 fpathconf() 方法的语法 -


 os.fpathconf(fd, name)

参数

Python os.fpathconf() 方法接受以下参数 -

  • fd − 这是要返回系统配置信息的文件描述符。
  • name − 此参数指定要检索的配置值。它可以是一个字符串,它是已定义的系统值的名称;这些名称在许多标准(POSIX.1、Unix 95、Unix 98 等)中指定。

返回值

Python os.fpathconf() 方法返回与打开的文件对应的系统配置信息。

名为 “pathconf_names” 的字典包含与主机操作系统相关的所有配置值。在以下示例中,我们将显示配置值。


#!/usr/bin/python
import os, sys

# Open a file
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )
print ("%s" % os.pathconf_names)

# Close opened file
os.close( fd)
print ("Closed the file successfully!!")

当我们运行上述程序时,它会产生以下结果——

{'PC_ALLOC_SIZE_MIN': 18, 'PC_ASYNC_IO': 10, 'PC_CHOWN_RESTRICTED': 6,
'PC_FILESIZEBITS': 13, 'PC_LINK_MAX': 0, 'PC_MAX_CANON': 1, 'PC_MAX_INPUT': 2,
'PC_NAME_MAX': 3, 'PC_NO_TRUNC': 7, 'PC_PATH_MAX': 4, 'PC_PIPE_BUF': 5, 'PC_PRIO_IO': 11,
'PC_REC_INCR_XFER_SIZE': 14, 'PC_REC_MAX_XFER_SIZE': 15, 'PC_REC_MIN_XFER_SIZE': 16,
'PC_REC_XFER_ALIGN': 17, 'PC_SOCK_MAXBUF': 12, 'PC_SYMLINK_MAX': 19,
'PC_SYNC_IO': 9, 'PC_VDISABLE': 8}

Closed the file successfully!!

以下示例显示了 fpathconf() 方法的用法。在这里,我们将两个配置值,即 “PC_LINK_MAX” 和 “PC_NAME_MAX” 传递给 fpathconf()。这将打印最大链接数和文件名的最大长度。


#!/usr/bin/python
import os, sys

# Open a file
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )

# get maximum number of links to the file.
no = os.fpathconf(fd, 'PC_LINK_MAX')
print ("Maximum number of links to the file. :%d" % no)

# Now get maximum length of a filename
no = os.fpathconf(fd, 'PC_NAME_MAX')
print ("Maximum length of a filename :%d" % no)

# Close opened file
os.close( fd)
print ("Closed the file successfully!!")

在运行上述程序时,它会打印以下结果 -

Maximum number of links to the file. :65000
Maximum length of a filename :255
Closed the file successfully!!