Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Как создать каталог, не используюя mkdir() ?


Автор: andrew_121 14.8.2009, 17:25
Нужно создать каталог не используя функцию "mkdir()" и команду "mkdir".
Как это сделать?

Автор: MAKCim 14.8.2009, 20:03
andrew_121, 
Код

syscall(SYS_mkdir, "directory", 0777);

Автор: Loki 15.8.2009, 03:16
или
Код

 fd = open ("/root/.mydir/", O_RDONLY|O_CREAT|O_DIRECTORY|O_EXCL, 0700);

Автор: MAKCim 15.8.2009, 09:35
Loki, 
ты сам то проверял? ;)

Автор: Loki 15.8.2009, 10:39
неа, ну я так файлики создаю, диры знач тоже должно ;) а разве нет?)
тут есть...
/usr/include/asm-generic/fcntl.h:42:#ifndef O_DIRECTORY
/usr/include/asm-generic/fcntl.h:43:#define O_DIRECTORY 00200000        /* must be a directory */

Автор: MAKCim 15.8.2009, 11:33
Цитата(Loki @  15.8.2009,  10:39 Найти цитируемый пост)
а разве нет?)

с чего бы это?
Цитата("man 2 open")

O_DIRECTORY
              If pathname is not a directory, cause the open to fail.  This flag is Linux-specific, and was added  in  kernel  version  2.1.126,  to
              avoid  denial-of-service  problems if opendir(3) is called on a FIFO or tape device, but should not be used outside of the implementa‐
              tion of opendir(3).
...
O_CREAT
              If  the  file does not exist it will be created.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)