将输出重定向到另一个目的地相当容易。我可以通过以下方式轻松实现:
freopen ("/def/tty0", "w", stdout);
printf ("Redirected");
fclose (stdout);
但是我怎么能将它重定向到两个或更多文件?我需要类似于" tee"提供的功能。
有没有众所周知的方法?
答案 0 :(得分:3)
这不可能直接执行:每个文件描述符只分配给一个资源(通常是文件)。如果您希望在写入多个文件时写入FILE
收益,则必须执行一些操作。以下是一些想法:
fopencookie(3)
生成实际输出到多个文件的FILE*
。有关详细信息,请参阅fopencookie(3)
的联机帮助页。tee(1)
并将数据写入tee(1)
的标准输入。请查看popen(3)
以获取有用的功能。