os.sysconf(), confstr(), pathconf() și fpathconf() în Python

Sistem de operare (os) Python 3.0+ (Unix)

Limitele și setările sistemului: mărimea paginii de memorie, lungimea maximă a numelor de fișier etc.

Sintaxă
os.sysconf(nume)
os.confstr(nume)
os.pathconf(cale, nume)
os.fpathconf(fd, nume)

Ce face os.sysconf(), confstr(), pathconf() și fpathconf()

sysconf(nume) returnează valori numerice de configurare ale sistemului, de exemplu "SC_PAGE_SIZE" (mărimea paginii de memorie) sau "SC_OPEN_MAX" (numărul maxim de fișiere deschise). confstr(nume) returnează valori text, de exemplu "CS_PATH".

pathconf(cale, nume) și fpathconf(fd, nume) dau limite care depind de sistemul de fișiere, de exemplu "PC_NAME_MAX" (lungimea maximă a unui nume de fișier). Numele acceptate sunt în os.sysconf_names, os.confstr_names și os.pathconf_names.

Parametri

Parametru Descriere
nume Numele setării (text sau număr).
cale / fd Fișierul sau directorul pentru pathconf/fpathconf.

Ce returnează

Un întreg sau un text.

Exemple

Exemplul 1: Câteva limite ale sistemului

import os
print(os.sysconf("SC_PAGE_SIZE"), os.sysconf("SC_OPEN_MAX"))
print(os.confstr("CS_PATH"))
print(os.pathconf("/", "PC_NAME_MAX"))
with open("/etc/hosts") as f:
    print(os.fpathconf(f.fileno(), "PC_NAME_MAX"))

Rezultat posibil (diferă la fiecare rulare)

4096 1024
/bin:/usr/bin
255
255

Greșeli frecvente

  • Dai un nume care nu există pe sistemul curent și primești ValueError: unrecognized configuration name. Verifică în os.sysconf_names.

Comenzi înrudite

  • os.uname(): Informații despre sistemul de operare: nume, numele calculatorului, versiunea nucleului, arhitectura.
  • os.statvfs() și os.fstatvfs(): Informații despre sistemul de fișiere: mărimea blocurilor, blocuri libere, număr de fișiere.