Создать новую точку входа в файловую систему
#include <sys/types.h>#include <unistd.h>#include <sys/stat.h>int mknod( const char *path,mode_t mode,dev_t dev );
libc
Функция mknod() создаёт файл с именем, заданным параметром path, используя тип файла, закодированный в параметре mode. Поддерживаемые типы файлов: каталоги и FIFO.
Эта функция включена для повышения переносимости программного обеспечения, написанного для Unix-совместимых операционных систем. Для переносимости в рамках POSIX вместо этого используйте функции mkdir() или mkfifo(). |
Чтобы создать каталог с разрешениями на чтение-запись-выполнение для всех, можно использовать следующее:
mknod( name, S_IFDIR | 0777, 0 );
LINK_MAX
. PATH_MAX
или длина компонента имени пути больше, чем значение NAME_MAX
. /** Create special files as a directory or FIFO*/#include <stdio.h>#include <stdlib.h>#include <sys/stat.h>#include <unistd.h>int main( int argc, char** argv ){int c;mode_t mode = 0666;int ecode = 0;if ( argc == 1 ){printf( "Use: %s [-d directory] ... [-f fifo] ... \n", argv[0] );return (0);}while ( ( c = getopt( argc, argv, "d:f:" )) != -1 ){switch ( c ){case 'd': mode = S_IFDIR | 0666; break;case 'f': mode = S_IFIFO | 0666; break;}if ( mknod( optarg, mode, 0 ) != 0 ){perror( optarg );++ecode;}}return (ecode);}
POSIX 1003.1 X/Open Systems Interfaces Extension
errno, struct stat, mkdir(), mkfifo()
Предыдущий раздел: Описание API системной библиотеки