C过滤文件输入流

时间:2016-08-16 21:11:10

标签: c stream stdin

我在C中使用第三方库,它将FILE *作为数据源并对文本进行一些处理。

现在,我只是传递stdinfopen一个文件并传递它。

但是,我想在库看到文本之前做一些过滤。 (具体来说,我想在每个换行符;\n之前插入分号\r。)

如果不将整个文件一次复制到内存中(即作为某种管道),在纯C(而不是C ++)中执行此操作的最佳方法是什么?

这就是我调用库的方式

mpc_result_t r;
FILE *f = NULL;
if (argc > 1) {
    f = fopen(argv[1], "rb");
} else {
    f = stdin;
}
if (!f) return;

if (mpc_parse_pipe("test", f, test, &r)) {
    mpc_ast_print(r.output);
    mpc_ast_delete(r.output);
} else {
    mpc_err_print(r.error);
    mpc_err_delete(r.error);
}
fclose(f);

0 个答案:

没有答案