【发布时间】:2013-01-31 08:39:49
【问题描述】:
使用fopen(),我使用fgets()逐行读取文件。
是否有类似fgets() 的函数来读取open() 打开的流?
【问题讨论】:
-
文档怎么样? linux.die.net/man/3/fgets
使用fopen(),我使用fgets()逐行读取文件。
是否有类似fgets() 的函数来读取open() 打开的流?
【问题讨论】:
没有这样的功能。问题是,除非您在用户空间中进行缓冲(如 FILE* 例程所做的那样),否则无法有效地实现它:您必须一个接一个地处理 read 字符。
在 POSIX 系统上,您可以使用 fdopen 将 FILE* 结构包裹在文件描述符周围,然后使用 fgets。
【讨论】:
您是否正在尝试读取标准输入?如果是这样……
字符线[1000]; 文件 *fpin;
fpin=标准输入; while(fgets(line,1000,fpin)!=NULL) printf("%s",line);
【讨论】: