Python Glossary English

все Python 3Linux · macOSosфункция

os.mknod

os — спецфайлы

Создаёт узел файловой системы (спецфайл устройства, FIFO и т.п.). Доступно на Unix.

Синтаксис

os.mknod(...)

Создание файлов устройств требует прав root; без них доступны только обычные файлы и каналы. Тип узла задаётся битами в mode (stat.S_IFCHR, stat.S_IFBLK), а номер устройства собирается через os.makedev. В обычном коде для каналов понятнее os.mkfifo.

Примеры

import os, stat
os.mknod('plain.txt')   # → ? только Unix: создан пустой обычный файл с режимом по умолчанию 0o600
os.mknod('node.fifo', stat.S_IFIFO | 0o600)   # → ? только Unix: тип узла задаётся битами режима — здесь получился FIFO, как от os.mkfifo
print(stat.S_ISFIFO(os.stat('node.fifo').st_mode))   # → True
os.mknod('blockdev', stat.S_IFBLK | 0o600, os.makedev(8, 0))   # → ? только Unix и только под root: узел блочного устройства major=8, minor=0; без прав — PermissionError
os.mknod('node.fifo', stat.S_IFIFO | 0o600)   # → FileExistsError: [Errno 17] File exists: 'node.fifo'

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности