все 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Сообщить о неточности