и функция mkdir()
#include <sys/stat.h> int mkdir (const char *path, mode_t mode);
С помощью одной команды mkdir можно сформировать несколько каталогов. В каждом из них появятся ссылки . и .., которые другими способами создать нельзя. По умолчанию устанавливаются все биты режима доступа; режим можно задать и явно с помощью опции -m.
Если нужен не один, а целая цепочка каталогов, следует воспользоваться опцией -p. Соответствующий пример приведен в пример 4.36.
mkdir -p work/tmp/save
Листинг 4.36. Пример использования служебной программы mkdir для создания цепочки каталогов. (html, txt)
По этой команде в текущем каталоге появится подкаталог work, в нем - каталог tmp, а уже в нем - каталог save.
Смысл аргументов функции mkdir() тот же, что и для creat(), в случае неудачи возвращается -1, но при нормальном завершении результат равен 0 (mkdir() не оставляет новый каталог открытым). Перечисленные выше условия неудачного завершения creat() (кроме превышения максимального числа одновременно открытых файлов) применимы и к mkdir().
Интерфейс, сходный с mkdir, имеют утилита mkfifo для создания каналов:
mkfifo [-m режим_доступа] канал ...
Заметим, что здесь отсутствует опция -p) и одноименная функция (см. пример 4.37).
#include <sys/stat.h> int mkfifo (const char *path, mode_t mode);
Листинг 4.37. Описание функции mkfifo(). (html, txt)