Aus*_*tin 1 c fgets kernel-module fcntl
我正在学习与用户级程序进行通信的内核模块,并且最初正在打开一个文件
FILE *pFile = fopen(...)
Run Code Online (Sandbox Code Playgroud)
用它写信给它
char *str = malloc(10);
fputs(str, pFile);
Run Code Online (Sandbox Code Playgroud)
但是现在我需要使用功能#include <fcntl.h>来尝试一些异步通知,而我需要使用的示例
int pFile;
pFile = open("/dev/mymodule", O_RDWR);
Run Code Online (Sandbox Code Playgroud)
我认为我不能再使用,fputs()或者fgets()因为它需要一个FILE *ptr而我int现在已经有了.我想我应该使用write()而read()不是.
这是怎么回事?
write(pFile, str, sizeof(str));
char line[256];
while (read(pFile, line, 256) != NULL) {
printf("%s", line);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令打开FILE*基于文件描述符fdopen():
FILE *file = fdopen(pfile, "rw");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
613 次 |
| 最近记录: |