mknod

Autres langues

Langue: ru

Autres versions - même langue

Version: 2003-04-23 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

éíñ

mknod - ÓÏÚÄÁÔØ ÓÐÅÃÉÁÌØÎÙÊ ÉÌÉ ÏÂÙÞÎÙÊ ÆÁÊÌ

ïâúïò


#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

#include <unistd.h>



int mknod(const char *pathname, mode_t mode, dev_t dev);

ïðéóáîéå

óÉÓÔÅÍÎÙÊ ×ÙÚÏ× mknod ÓÏÚÄÁ£Ô ÕÚÅÌ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ (ÆÁÊÌ, ÓÐÅÃÉÁÌØÎÙÊ ÆÁÊÌ ÕÓÔÒÏÊÓÔ×Á ÉÌÉ ÉÍÅÎÏ×ÁÎÎÙÊ ËÁÎÁÌ) Ó ÉÍÅÎÅÍ pathname É Ó ÁÔÒÉÂÕÔÁÍÉ, ËÏÔÏÒÙÅ ÚÁÄÁÀÔÓÑ ÞÅÒÅÚ mode É dev.

áÒÇÕÍÅÎÔ mode ÚÁÄÁÅÔ ËÁË ÐÒÁ×Á ÄÏÓÔÕÐÁ, ÔÁË É ÔÉÐ ÕÚÌÁ, ËÏÔÏÒÙÊ ÎÕÖÎÏ ÓÏÚÄÁÔØ. áÒÇÕÍÅÎÔ ÄÏÌÖÅÎ ÂÙÔØ ËÏÍÂÉÎÁÃÉÅÊ (ÂÉÔÏ×ÏÅ ÓÌÏÖÅÎÉÅ OR) ÏÄÎÏÇÏ ÉÚ ÎÉÖÅÐÅÒÅÞÉÓÌÅÎÎÙÈ ÔÉÐÏ× ÆÁÊÌÏ× É ÐÒÁ× ÄÏÓÔÕÐÁ ÄÌÑ ÎÏ×ÏÇÏ ÕÚÌÁ.

ðÒÁ×Á ÄÏÓÔÕÐÁ ÉÚÍÅÎÑÀÔÓÑ ÚÎÁÞÅÎÉÅÍ umask ÐÒÏÃÅÓÓÁ × ÏÂÙÞÎÏÍ ÐÏÒÑÄËÅ: ÐÒÁ×Á ÓÏÚÄÁ×ÁÅÍÏÇÏ ÕÚÌÁ ÂÕÄÕÔ (mode & ~umask).

ôÉÐ ÆÁÊÌÁ ÄÏÌÖÅÎ ÂÙÔØ ÏÄÎÉÍ ÉÚ ÚÎÁÞÅÎÉÊ: S_IFREG, S_IFCHR, S_IFBLK, S_IFIFO ÉÌÉ S_IFSOCK ËÏÔÏÒÙÅ ÏÐÒÄÅÌÑÀÔ ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ ÏÂÙÞÎÙÊ ÆÁÊÌ (ËÏÔÏÒÙÊ ÂÕÄÅÔ ÓÏÚÄÁÎ ÐÕÓÔÙÍ), ÓÐÅÃÉÁÌØÎÙÊ ÓÉÍ×ÏÌØÎÙÊ ÆÁÊÌ, ÓÐÅÃÉÁÌØÎÙÊ ÂÌÏÞÎÙÊ ÆÁÊÌ, FIFO (ÉÍÅÎÏ×ÁÎÎÙÊ ËÁÎÁÌ) ÉÌÉ ÄÏÍÅÎÎÙÊ ÓÏËÅÔ Unix. (îÏÌØ × ÔÉÐÅ ÆÁÊÌÁ ÜË×É×ÁÌÅÎÔÅÎ ÔÉÐÕ S_IFREG.)

åÓÌÉ ÔÉÐ ÆÁÊÌÁ S_IFCHR ÉÌÉ S_IFBLK, ÔÏ ÁÒÇÕÍÅÎÔ dev ÚÁÄÁÅÔ ÓÔÁÒÛÉÊ (major) É ÍÌÁÄÛÉÊ (minor) ÎÏÍÅÒÁ ÓÏÚÄÁ×ÁÅÍÏÇÏ ÆÁÊÌÁ ÕÓÔÒÏÊÓÔ×Á; × ÏÓÔÁÌØÎÙÈ ÓÌÕÞÁÑÈ ÜÔÏÇÏ ÁÒÇÕÍÅÎÔ ÉÇÎÏÒÉÒÕÅÔÓÑ.

åÓÌÉ pathname ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ ÉÌÉ Ñ×ÌÑÅÔÓÑ ÓÉÍ×ÏÌØÎÏÊ ÓÓÙÌËÏÊ, ×ÙÚÏ× Ú×ÅÒÛÉÔÓÑ Ó ÏÛÉÂËÏÊ EEXIST.

÷ÌÁÄÅÌÅà ÓÏÚÄÁÎÎÏÇÏ ÕÚÌÁ ÂÕÄÅÔ ÕÓÔÁÎÏ×ÌÅÎ ÓÏÌÁÓÎÏ ÜÆÆÅËÔÉ×ÎÏÍÕ ÉÄÅÎÔÉÆÉËÁÔÏÒÕ ÐÏÌØÚÏ×ÁÔÅÌÑ ÐÒÏÃÅÓÓÁ, ÉÚ ËÏÔÏÒÏÇÏ ÂÙÌ ×ÙÐÏÌÎÅÎ ×ÙÚÏ×. åÓÌÉ × ÐÒÁ×ÁÈ ÄÏÓÔÕÐÁ Ë ËÁÔÁÌÏÇÕ, × ËÏÔÏÒÏÍ ÎÁÈÏÄÉÔÓÑ ÕÚÅÌ, ÕÓÔÁÎÏ×ÌÅÎ ÂÉÔ setgid, ÉÌÉ ÅÓÌÉ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÓÍÏÎÔÉÒÏ×ÁÎÁ Ó ÓÅÍÁÎÔÉËÏÊ ÇÒÕÐÐ BSD, ÔÏ ÎÏ×ÙÊ ÕÚÅÌ ÕÎÁÓÌÅÄÕÅÔ ÇÒÕÐÐÕ-×ÌÁÄÅÌØÃÁ ÏÔ Ó×ÏÅÇÏ ÒÏÄÉÔÅÌØÓËÏÇÏ ËÁÔÁÌÏÇÁ; × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÇÒÕÐÐÏÊ-×ÌÁÄÅÌØÃÅÍ ÓÔÁÎÅÔ ÇÒÕÐÐÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÁÑ ÜÆÆÅËÔÉ×ÎÏÍÕ ÉÄÅÎÔÉÆÉËÁÔÏÒÕ ÇÒÕÐÐÙ ÐÒÏÃÅÓÓÁ.

÷ïú÷òáýáåíïå úîáþåîéå

÷ ÓÌÕÞÁÅ ÕÓÐÅÈÁ mknod ×ÏÚ×ÒÁÝÁÅÔ ÎÏÌØ, × ÓÌÕÞÁÅ ÏÛÉÂËÉ ×ÏÚ×ÒÁÝÁÅÔÓÑ -1 É ÚÎÁÞÅÎÉÅ errno ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ ÏÂÒÁÚÏÍ.

ïûéâëé

EPERM
áÒÇÕÍÅÎÔ mode ÕÓÔÁÎÏ×ÌÅÎ ÄÌÑ ÓÏÚÄÁÎÉÑ ÞÅÇÏ-ÔÏ ÏÔÌÉÞÎÏÇÏ ÏÔ ÏÂÙÞÎÏÇÏ ÆÁÊÌÁ, FIFO (ÉÍÅÎÏ×ÁÎÎÏÇÏ ËÁÎÁÌÁ) ÉÌÉ ÄÏÍÅÎÎÏÇÏ ÓÏËÅÔÁ Unix É ×ÙÚÙ×ÁÀÝÉÊ ÐÒÏÃÅÓÓ ÎÅ ÉÍÅÅÔ ÐÒÁ× ÓÕÐÅÒÐÏÌØÚÏ×ÁÔÅÌÑ; ÜÔÁ ÖÅ ÏÛÉÂËÁ ×ÏÚ×ÒÁÝÁÅÔÓÑ, ÅÓÌÉ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ, ÓÏÄÅÒÖÁÝÁÑ pathname ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÚÁÔÒÅÂÏ×ÁÎÎÙÊ ÔÉÐ ÓÏÚÄÁ×ÁÅÍÏÇÏ ÕÚÌÁ.
EINVAL
ÚÁÔÒÅÂÏ×ÁÎÏ ÓÏÚÄÁÎÉÅ ÞÅÇÏ-ÔÏ ÏÌÉÞÎÏÇÏ ÏÔ ÏÂÙÞÎÏÇÏ ÆÁÊÌÁ, ÓÐÅÃÉÁÌØÎÏÇÏ ÆÁÊÌÁ ÕÓÔÒÏÊÓÔ×Á, FIFO ÉÌÉ ÓÏËÅÔÁ.
EEXIST
pathname ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ.
EFAULT
pathname ÕËÁÚÙ×ÁÅÔ ÚÁ ÐÒÅÄÅÌÙ ÄÏÓÔÕÐÎÏÇÏ ×ÁÍ ÁÄÒÅÓÎÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á.
EACCES
òÏÄÉÔÅÌØÓËÉÊ ËÁÔÁÌÏÇ ÎÅ ÒÁÚÒÅÛÁÅÔ ÚÁÐÉÓØ ÔÅËÕÝÅÍÕ ÐÒÏÃÅÓÓÕ ÉÌÉ ÏÄÉÎ ÉÚ ËÁÔÁÌÏÇÏ× × pathname ÎÅ ÒÁÚÒÅÛÁÅÔ ÐÏÉÓË (×ÙÐÏÌÎÅÎÉÅ).
ENAMETOOLONG
pathname ÉÍÅÅÔ ÓÌÉÛËÏÍ ÂÏÌØÛÕÀ ÄÌÉÎÕ.
ENOENT
ëÏÍÐÏÎÅÎÔ ËÁÔÁÌÏÇÁ × pathname ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ÉÌÉ Ñ×ÌÑÅÔÓÑ ÂÉÔÏÊ ÓÉÍ×ÏÌØÎÏÊ ÓÓÙÌËÏÊ.
ENOTDIR
ëÏÍÐÏÎÅÎÔ, ÉÓÐÏÌØÚÕÅÍÙÊ ËÁË ËÁÔÁÌÏÇ × pathname ÎÅ Ñ×ÌÑÅÔÓÑ ËÁÔÁÌÏÇÏÍ.
ENOMEM
îÅ È×ÁÔÁÅÔ ÐÁÍÑÔÉ.
EROFS
pathname ÕËÁÚÙ×ÁÅÔ ÎÁ ÆÁÊÌ × ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ ÄÏÓÔÕÐÎÏÊ ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ.
ELOOP
óÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌØÎÙÊ ÓÓÙÌÏË ÓÌÕÞÉÌÏÓØ ×Ï ×ÒÅÍÑ ÁÎÁÌÉÚÁ pathname.
ENOSPC
îÁ ÕÓÔÒÏÊÓÔ×Å, ÓÏÄÅÒÖÁÝÅÍ pathname ÎÅÔ Ó×ÏÂÏÄÎÏÇÏ ÍÅÓÔÁ ÄÌÑ ÎÏ×ÏÇÏ ÕÚÌÁ.

óïïô÷åôóô÷éå óôáîäáòôáí

SVr4 (ÎÏ ÄÁÎÎÙÊ ×ÙÚÏ× ÔÒÅÂÕÅÔ ÐÒÉ×ÅÌÅÇÉÊ É ÔÁËÉÍ ÏÂÒÁÚÏÍ ÎÅ ×ÈÏÄÉÔ × POSIX), 4.4BSD. Linux ×ÅÒÓÉÑ ÏÔÌÉÞÁÅÔÓÑ ÏÔ SVr4 ×ÅÒÓÉÉ × ÔÏÍ, ÞÔÏ ÎÅ ÔÒÅÂÕÅÔ ÐÒÉ×ÅÌÅÇÉÊ ÓÕÐÅÒÐÏÌØÚÏ×ÁÔÅÌÑ ÄÌÑ ÓÏÚÄÁÎÉÑ ËÁÎÁÌÏ×, Á ÔÁËÖÅ × ÔÏÍ, ÞÔÏ ÎÅ ÄÏËÕÍÅÎÔÉÒÕÀÔÓÑ ÏÛÉÂËÉ EMULTIHOP, ENOLINK É EINTR.

úáíåþáîéñ

POSIX 1003.1-2001 ÇÏ×ÏÒÉÔ: "ðÅÒÅÎÏÓÉÍÙÍ ÎÁ ÄÒÕÇÉÅ ÐÌÁÔÆÏÒÍÙ ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ×ÙÚÏ×Á mknod() Ñ×ÌÑÅÔÓÑ ÔÏÌØËÏ ÓÏÚÄÁÎÉÅ FIFO ÆÁÊÌÏ×. åÓÌÉ mode ÎÅ S_IFIFO ÉÌÉ dev ÎÅ 0, ÐÏ×ÅÄÅÎÉÅ mknod() Ñ×ÌÑÅÔÓÑ ÎÅÏÐÒÅÄÅÌ£ÎÎÙÍ."

ðÏÄ Linux ÄÁÎÎÙÊ ×ÙÚÏ× ÎÅ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎ ÄÌÑ ÓÏÚÄÁÎÉÑ ËÁÔÁÌÏÇÏ×. äÌÑ ÜÔÏÇÏ ÎÕÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ mkdir, Á FIFO ÍÏÇÕÔ ÓÏÚÄÁ×ÁÔØÓÑ ×ÙÚÏ×ÏÍ mkfifo.

óÕÝÅÓÔ×ÕÅÔ ÍÎÏÖÅÓÔ×Ï ÐÏÇÒÅÛÎÏÓÔÅÊ × ÐÒÏÔÏËÏÌÅ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ NFS. îÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ ×ÌÉÑÀÔ ÎÁ mknod.

óíïôòé ôáëöå

fcntl(2), mkdir(2), mount(2), socket(2), stat(2), umask(2), unlink(2), mkfifo(3)

ðåòå÷ïä

ðÅÒÅ×£Ì Ó ÁÎÇÌÉÊÓËÏÇÏ ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× <corochoone@perm.ru> 2004