我正在学习内核模块与用户级程序通信,最初打开一个文件
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);
}
您可以使用 fdopen()
打开基于文件描述符的FILE*
:
FILE *file = fdopen(pfile, "rw");
参考:fdopen - 将流与文件描述符关联