Rechercher une page de manuel
mknod
Langue: ko
Version: 1994년 3월 29일 (fedora - 25/11/07)
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는 mode 와 dev 로 명시된, pathname 이름의 파일시스템 노드 (파일, 장치 특수 파일 또는 named 파이프) 를 생성한다.mode는 생성될 노드의 타입과 소유권을 명시한다.
이는 새로운 노드의 소유권과 아래서 나열된 파일 타입중 하나의 조합이 (비트연산 OR를 사용해서) 되어야한다.
소유권은 일반적으로 프로세스의 umask에 의해 수정된다: 생성된 노드의 소유권은 (mode & ~umask)이다.
일반 파일 (빈 상태로 만들어진다), 문자 특수 파일, 블럭 특수 파일 또는 FIFO (named 파이프)를 생성하기 위한 파일 타입은 각각 S_IFREG, S_IFCHR, S_IFBLK 그리고 S_IFIFO 이고, 일반 파일을 생성하기 위해 0도 가능하다.
만약 파일 타입이 S_IFCHR 또는 S_IFBLK이면 dev는 새로 생성될 장치 특수 파일의 주(major), 부(minor)번호이어야만 한다; 그렇지 않으면, 무시된다.
새로 생성된 노드는 프로세스의 유효 사용자 ID가 소유권을 갖는다. 만약 노드가 위치한 디렉토리에 set-group-id 비트가 설정되어 있거나, 파일 시스템이 BSD 그룹 의미(semantic)에 따라 마운트되어 있다면, 새로운 노드는 자신의 부모 디렉토리로 부터 그룹 소유권을 상속받을 것이다; 그렇지 않으면 프로세스의 유효 그룹 ID가 그룹 소유권을 갖는다.
반환값
mknod는 성공시, 0을 리턴하고 에러시, -1을 리턴한다 (이 경우 errno는 적절히 설정된다).에러
- EPERM
- mode가 FIFO (named 파이프) 이외의 것을 생성하려하고, 호출한 프로세스의 권한이 슈퍼유저(superuser)가 아니다; 또한 pathname이 포함된 파일시스템이 만드려고 하는 노드의 타입을 지원하지 않는다.
- EINVAL
- mode가 일반 파일, 장치 특수 파일 또는 FIFO이외의 것을 생성하도록 요구한다.
- EEXIST
- pathname이 이미 존재한다.
- EFAULT
- pathname이 접근할 수 없는 주소 영역을 가르킨다.
- EACCES
- 부모 디렉토리가 프로세스에게 쓰기를 허용하지 않거나 pathname에 있는 디렉토리중 하나가 프로세스에게 탐색(실행)을 허용하지 않는다.
- ENAMETOOLONG
- pathname이 너무 길다.
- ENOENT
- pathname의 디렉토리가 존재하지 않거나 끊어진 심볼릭 링크이다.
- ENOTDIR
- pathname의 디렉토리가 실제는 디렉토리가 아니다.
- ENOMEM
- 사용할 수 있는 커널 메모리가 부족하다.
- EROFS
- pathname이 읽기 전용 파일시스템의 파일을 가르킨다.
- ELOOP
- pathname을 찾는 도중 너무 많은 심볼릭 링크가 존재한다.
- ENOSPC
- pathname이 속한 장치에 새로운 노드를 만들기 위한 공간이 충분치 않다.
호환
SVr4 (그러나 호출하기 위해서는 권한이 필요하다. POSIX는 아니다.) 4.4BSD. 리눅스 버전은 SVr4 버전과는 다르게 파이프를 생성할 때 root 권한이 필요없고, EMULTIHOP, ENOLINK, EINTR과 같은 에러가 기술되어 있지 않다.버그
mknod는 디렉토리나 소켓 파일을 생성할 수 없고 슈퍼유저가 아닌 유저가 일반 파일을 생성하는 것은 불가능하다.NFS의 프로토콜에는 많은 버그가 존재한다. 이런 버그는 mknod에 영향을 미친다.
관련 항목
read(2), write(2), fcntl(2), close(2), unlink(2), open(2), mkdir(2), stat(2), umask(2), mount(2), socket(2), fopen(3).역자
정동현 <dhjung@serome.co.kr>, 2000년 4월 20일La bourse pour moi, c'est de l'argent fictif. Il n'est pas
normal que je prenne ce 'racourci' qui me donnerait en quelques
jours des milliards grâce à ma cote qui monterait au début,
qui resterait stable et qui me foutrait sur la paille 5 ans
après, sans crier gare, comme c'est le cas aujourd'hui
avec toutes ces sociétés qui font faillites, ou de ces
présidents qui ne le sont plus parce que des associés se sont
joints et possèdent maintenant 51% de la société en actions
et donc le pouvoir. Au lieu de me mettre en bourse, je vais
investir dans l'immobilier. Chaque employé engagé dans la
société sera responsable de 5 locataires louant un appart
à 500 Euros par mois. Ceci donne 500 Euros * 5 = 2500 Euros/mois.
c'est à dire, le salaire de cet employé. L'employé sera
donc payé avec l'argent de ses loyés, ce qui évite qu'il ne
soit viré si la société est dans une mauvaise passe, puisque
de toute façon, ses appartements "assurent" cet employé et
pour être franc, chez moi on ne parlera pas d'employés mais
d'agents parce qu'un employé, ca ressemble trop à du bétail.
Je veux les appeler des agents, et leur laisser la possibilité
de créer des sous-sociétés à ma future société mère, ou leur
laisser la possiblité de travailler dans un secteur différent
de la société chaque fois qu'ils le souhaiteraient. La société
a une sous-société sur le vin parce qu'un agent a eu la
bonne idée de la créer ? Eh ben pourquoi ne pas le rejoindre !
Si chaque agent peut "changer" son métier tout en restant
dans la même société, il obtient toujours des "points"
d'ancienneté et est donc de plus en plus payé/augmenté
et connaît de plus en plus comment fonctionne la société mère.
Pourquoi attendre d'avoir 40 ans pour créer sa société et
pourquoi travailler jusqu'à tes 40 ans pour avoir l'argent
nécessaire à la création de ta société alors que finalement,
tes idées, tu les as déjà, tout ce qu'il te faut, c'est
quelqu'un qui croit en toi. Ma société mère pourrait croire
en toi par exemple ( une fois qu'elle sera là tout de même )
et pourrait te donner le financement nécessaire. Pourquoi
dire aux jeunes d'aujourd'hui "arrête de rêver" ? C'est en
rêvant qu'on arrive. Regarde moi ! Tu crois que MultiDeskOS
est né d'hier ? Certainement pas ! Le premier système que
j'ai créé ( et qui était finalement la base de MultiDeskOS )
était ce système domotique JSI connecté au joystick et
je n'avais alors que 16 ans ! Tu te rend compte ! Presque 10
ans que je pourrais avoir ma société ou ma sous-société si
quelqu'un avait cru en moi. Je veux donc de mon coté, assurer
mes agents pour qu'ils ne doivent jamais être virés et
leur permettre de faire un peu de tout et n'importe quoi,
tout en gardant disons 70% d'activité pour la société mère,
en tout cas dans un premier temps. Sa sous société fait
faillite sur le vin parce que ca n'intéresse pas les gens ?
Pas de problème ! On supprime simplement cette sous-société
et on transfère les agents qui travaillaient dedans dans une
autre sous-société ou on les transfère dans la société mère
pour qu'ils retrouvent de nouvelles idées MAIS ILS
NE SONT JAMAIS VIRES ! S'auf s'ils font des conneries
et qu'ils le savent, alors là, je les fou dehors pour
assurer la stabilité des autres agents. Enfin voilà.
-- Jayce - Social. --
Contenus ©2006-2008 Benjamin Poulain
Design ©2006-2008 Maxime Vantorre