我正在学习与用户级程序通信的内核模块,最初是用

FILE *pFile = fopen(...)

写信给它
char *str = malloc(10);
fputs(str, pFile);

不过,现在我需要使用#include <fcntl.h>中的功能来尝试一些异步通知,而我使用的示例
int pFile;
pFile = open("/dev/mymodule", O_RDWR);

我想我不能再使用fputs()fgets(),因为它需要一个FILE *ptr,而我现在有一个int。我想我应该用write()read()来代替。
这就是它的工作原理吗?
write(pFile, str,  sizeof(str));

char line[256];
    while (read(pFile, line, 256) != NULL) {
            printf("%s", line);
        }

最佳答案

您可以使用以下命令打开基于文件描述符的FILE*

FILE *file = fdopen(pfile, "rw");

参考:fdopen - associate a stream with a file descriptor

关于c - 用open()替代fputs()/fgets()的C语言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36088757/

10-10 12:47