在C程序的Ubuntu上使用mknod
收藏

我正在尝试制作一个使用mknod命令的c程序,比如

#include<stdio.h>
#include<fcntl.h>
#include<string.h>

char info[50];

main() {
    int fdr;
    int rc = mknod("testfile",'b',0);
    if(rc<0) {
        perror("Error in mnod");
    }
    fdr=open("testfile",O_RDONLY);
    read(fdr,info,50);
    printf("\n Received message=%s",info);
    printf("\n");
} 

做些事情。它在红帽系统上运行良好,但在ubuntu上失败,给出错误无效参数。


最佳答案:

mknod已弃用;您不应使用它。如果要创建fifo,请使用标准mkfifo。如果要创建普通文件,请将creatopenO_CREAT一起使用。是的mknod可以创建设备节点,在某些系统上可能仍然是这样做的,但是在现代linux系统上,您依赖内核和/或udevd来处理这个问题。

公众号