如何使用 popen、less 和 fprintf(或类似的)在 c 中进行分页
How to do pagination in c with popen, less and fprintf (or similar)
我正在从文件中读取行,我想在显示时对它们进行分页,使用 popen()
和 less
。我无法让它发挥作用,也找不到任何特定于该主题的示例。所以我在这里。最小的可编译代码示例如下所示:
#include <stdlib.h>
#include <stdio.h>
int main()
{
FILE* stream;
stream = popen("less", "w");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
return 0;
}
如何对多个 fprintf()
语句进行分页?甚至可能是我正在尝试的方式还是我应该采取另一种方法?
非常感谢。
好的,我明白了。我忘记使用 pclose()
关闭创建到 less
的管道流。在最后添加 pclose(stream)
解决了问题。
我正在从文件中读取行,我想在显示时对它们进行分页,使用 popen()
和 less
。我无法让它发挥作用,也找不到任何特定于该主题的示例。所以我在这里。最小的可编译代码示例如下所示:
#include <stdlib.h>
#include <stdio.h>
int main()
{
FILE* stream;
stream = popen("less", "w");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
fprintf(stream, "Line\n");
return 0;
}
如何对多个 fprintf()
语句进行分页?甚至可能是我正在尝试的方式还是我应该采取另一种方法?
非常感谢。
好的,我明白了。我忘记使用 pclose()
关闭创建到 less
的管道流。在最后添加 pclose(stream)
解决了问题。