我在C中使用第三方库,它将FILE *
作为数据源并对文本进行一些处理。
现在,我只是传递stdin
或fopen
一个文件并传递它。
但是,我想在库看到文本之前做一些过滤。 (具体来说,我想在每个换行符;
或\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);