gpt4 book ai didi

erlang - 将 erlang shell 的输出重定向到文件中

转载 作者:行者123 更新时间:2023-12-04 16:21:46 25 4
gpt4 key购买 nike

有没有办法重定向 io:format() 打印的数据?从 erlang shell 到一个文件?我知道我可以打开一个文件 (IoDevice) 并将数据直接写入其中,但它需要更改代码,我现在不想这样做。

最佳答案

当进程调用 io:format()和类似的功能一样,进程向其 group_leader 进程发送 io 请求消息。所以一个简单的技巧是打开一个文件,并将其设置为产生输出的进程的 group_leader。这是将 shell 进程的输出重定向到文件的示例。

1> {ok, F} = file:open("z", [write]).
{ok,<0.36.0>}
2> group_leader(F, self()).
3> io:format("Where am I going to appear?~n").
4>

这只会重定向当前的 shell 进程,因此您必须为要重定向到文件的所有进程设置 group_leader。

该解决方案当然可以改进,例如通过生成一个服务器进程,该进程将 io 请求消息代理到旋转文件等。

关于erlang - 将 erlang shell 的输出重定向到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2140604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com