gpt4 book ai didi

用 open() 替代 fputs()/fgets()

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:44 28 4
gpt4 key购买 nike

我正在学习与用户级程序通信的内核模块,最初是用以下命令打开文件

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 - associate a stream with a file descriptor

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

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com