2

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

例如:如果我在/home/user/test/里面,我想在里面test创建目录,所以我会传递参数/level1/level2level1/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);

}
4

1 回答 1

5

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

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

您是否在您使用的操作系统上查看了 mknod 的手册页?我很确定这S_IFDIRmknod.

于 2014-11-10T00:44:59.780 回答