使用mknod()创建目录

时间:2014-11-07 23:17:32

标签: c directory mknod

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

例如:如果我/home/user/test/test里面有/level1/,我想在level2内创建目录level1,所以我会传递参数/level1/level2/

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

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>

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

}

1 个答案:

答案 0 :(得分:5)

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

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

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