標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4.2 |
両方 |
#define _OPEN_SYS
#include <sys/stat.h>
int mknod(const char *path, mode_t mode, rdev_t dev_identifier);
#define _XOPEN_SOURCE_EXTENDED 1
#include <sys/stat.h>
int mknod(const char *path, mode_t mode, dev_t dev_identifier);
path 引数で指定したパス名を使って、新しい ディレクトリー、正規ファイル、文字特殊ファイル、または FIFO 特殊ファイル (名前付きパイプ) を作成します。
新規ファイルのファイル許可ビットは、mode の 残りのビットで初期化され、プロセスのファイル作成マスク で変更されます。これらのシンボルについての詳細は、chmod() - ファイルまたはディレクトリーのモードの変更を参照してください。
装置メジャー番号 1、2、7: 装置マイナー番号の範囲は、システムで定義された 疑似端末の対の最大数よりも 1 だけ少ない数と 0 の間です。
装置メジャー番号 3、4、6、8、9: 装置マイナー番号は無視されます。
装置メジャー番号 5: 装置マイナー番号の値は、参照されるファイル記述子 を表します。例えば、装置マイナーの 0 はファイル記述子 の 0 を参照します。
mknod() は、正常に完了すると、st_atime、st_ctime、および st_mtime というファイル のフィールドに更新のマークを付けます。また、新規ファイルを含む ディレクトリーの st_ctime フィールドおよび st_mtime フィールドにも更新のマークが付きます。
正常に実行された場合、mknod() は 0 を戻します。
⁄* CELEBM18 *⁄
#include <sys⁄stat.h>
#include <unistd.h>
#include <stdio.h>
#define master 0x00010000
main() {
char fn[]="char ec";
if (mknod(fn, S_IFCHR|S_IRUSR|S_IWUSR, master|0x0001) != 0)
perror("mknod() error");
else if (unlink(fn) != 0)
perror("unlink() error");
}