使用 mknod() 创建目录

标签 c directory mknod

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

例如:如果我是 /home/user/test/ 并且在 test 里面有 /level1/,我想创建level1 中的目录 level2,所以我将传递参数 /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);

}

最佳答案

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

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

您是否在您使用的操作系统上查看了 mknod 的手册页?我很确定 S_IFDIRmknod 的不可移植选项。

关于使用 mknod() 创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26811662/

相关文章:

android - 嵌套目录创建者 : Phonegap

linux - 不允许 mknod 操作

python - 如何将 C 中的 double 组转换为 python 列表?

c - 在c中的数组中查找 'X'数字的部分和

linux - 如何更改文件夹及其子文件夹/文件的权限?

android - gradle 构建变体的文件夹命名约定

控制mplayer的C程序

c - 函数 ‘mknod’ 的隐式声明,但我包含了 header

c - 在 C 中为字符串数组动态分配内存

c - 链表和指针