使用mknod()创建目录

我需要使用mknod()创建一个目录mknod()在我的情况下不允许使用mkdir() ),我会从某个目录调用该程序,并引入在前一个目录中创建新目录的路径。

例如:如果我是/home/user/test/并且内部test/level1/ ,我想在level1内创建目录level2 ,所以我会传递参数/level1/level2/

我有以下代码,当我创建一个管道时,但当我将模式更改为S_IFDIR ,它没有做任何事情。

  #include  #include  #include  #include  #include  #include  #include  void main(int argc,char *argv[]){ int status; if ((status = mknod(argv[1], S_IFDIR,0)) == 1){ printf("error\n" ); } exit(0); } 

mknod通常用于创建设备节点(特殊目录)。

但是,有些操作系统支持使用mknod (QNX)创建常规目录。

您是否在您正在使用的操作系统上查看mknod的手册页? 我很确定S_IFDIRmknod的非便携式选项。