mknod(2) System Calls Manual mknod(2) mknod, mknodat - LIBRARY Standard C library (libc, -lc) #include int mknod(const char *pathname, mode_t mode, dev_t dev); #include /* AT_* */ #include int mknodat(int dirfd, const char *pathname, mode_t mode, dev_t dev); glibc (. feature_test_macros(7)): mknod(): _XOPEN_SOURCE >= 500 || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE mknod() (node) ( , ) pathname , mode dev. mode . ( ) , inode(7). The file mode is modified by the process's umask in the usual way: in the absence of a default ACL, the permissions of the created node are (mode & ~umask). , , , FIFO ( ) UNIX S_IFREG, S_IFCHR, S_IFBLK, S_IFIFO S_IFSOCK, ( S_IFREG). S_IFCHR S_IFBLK, dev (makedev(3) dev); . pathname , , EEXIST. ID . , , set-group-ID, BSD, - ; - ID . mknodat() mknodat() mknod(), , . pathname , , dirfd ( , mknod()). pathname dirfd AT_FDCWD, pathname ( mknod()). pathname , dirfd . openat(2) mknodat(). mknod() and mknodat() return zero on success. On error, -1 is returned and errno is set to indicate the error. EACCES , pathname ( path_resolution(7)). EBADF (mknodat()) pathname is relative but dirfd is neither AT_FDCWD nor a valid file descriptor. EDQUOT . EEXIST pathname . pathname , . EFAULT pathname . EINVAL mode , , , FIFO . ELOOP pathname . ENAMETOOLONG pathname . ENOENT pathname . ENOMEM . ENOSPC , pathname, . ENOTDIR , pathname, . ENOTDIR (mknodat()) pathname is relative and dirfd is a file descriptor referring to a file other than a directory. EPERM mode -, , , FIFO ( ) UNIX, (Linux: CAP_MKNOD); , , pathname, . EROFS pathname , . POSIX.1-2001 : << , mknod() FIFO. mode S_IFIFO dev 0, mknod() .>> , mknod() ; mkfifo(3), . Linux mknod() . mkdir(2). POSIX.1-2008. mknod() SVr4, 4.4BSD, POSIX.1-2001 (but see VERSIONS). mknodat() Linux 2.6.16, glibc 2.4. POSIX.1-2008. , NFS, . mknod() mknodat(). . mknod(1), chmod(2), chown(2), fcntl(2), mkdir(2), mount(2), socket(2), stat(2), umask(2), unlink(2), makedev(3), mkfifo(3), acl(5), path_resolution(7) aereiae , Alexey , Azamat Hackimov , Dmitriy S. Seregin , Dmitry Bolkhovskikh , ITriskTI , Max Is , Yuri Kozlov , ; GNU 3 , . . , , . Linux man-pages 6.06 31 2023 . mknod(2)