无法从 C 中的用户空间在/proc 文件系统中创建新文件。这可能吗?

标签 c file linux-kernel kernel proc

所以,这是应该创建字符串并将其写入/proc/minifwdb 的函数:

int write_to_file(char* rule)
{
    FILE* fin;

    fin = fopen("/proc/minifwdb", "a");

    if (!fin)
    {
        printf("Could not open the file /proc/minifwdb, exiting...\n");
        return 1;
    }

    if (fprintf(fin, "%s\n", rule) < 0)
        return 1;

    fclose(fin);

    return 0;
}

当调用 fopen() 时,它返回 NULL。目前不存在/proc/minifwdb 这样的文件。我需要使用 LKM 创建它,然后用它来写入信息吗? 我还尝试从没有 root 访问权限的用户创建它。有什么建议吗?

最佳答案

/proc 中的文件用作用户空间和内核之间的接口(interface)。

可以使用这样的文件将字符串从用户空间传递到内核,但想要接收它的内核代码负责创建该文件。

关于无法从 C 中的用户空间在/proc 文件系统中创建新文件。这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23967496/

相关文章:

c - 在 C 中以线程安全的方式在函数中重用全局数组

c - MSVC : "too few arguments in function call" when omitting optional parameter

c - 将结果从一个文件传递到另一个文件

c - 变长数组指令是如何生成的?

php - 如何阻止用户打开服务器上的文件?

Java - 我的文件无法读取,我无法弄清楚这一点

linux-kernel - 驱动mmap操作页表创建

python - 遵循命名约定从每个文本文件中提取值 - 如何?

c - 为什么挂载结构有两个挂载点字段?

linux - Linux 内核中磁盘文件的 I/O 缓冲区缓存