当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia redirect_stdio用法及代码示例


用法一

redirect_stdio(;stdin=stdin, stderr=stderr, stdout=stdout)

重定向流的子集stdinstderrstdout。每个参数必须是 IOStreamTTYPipe 、套接字或 devnull

Julia 1.7

redirect_stdio 需要 Julia 1.7 或更高版本。

用法二

redirect_stdio(f; stdin=nothing, stderr=nothing, stdout=nothing)

重定向流的子集 stdinstderrstdout ,调用 f() 并恢复每个流。

每个流的可能值为:

  • nothing 指示不应重定向流。
  • path::AbstractString 将流重定向到位于 path 的文件。
  • ioIOStreamTTYPipe 、套接字或 devnull

例子

julia> redirect_stdio(stdout="stdout.txt", stderr="stderr.txt") do
           print("hello stdout")
           print(stderr, "hello stderr")
       end

julia> read("stdout.txt", String)
"hello stdout"

julia> read("stderr.txt", String)
"hello stderr"

边案例

可以将相同的参数传递给 stdoutstderr

julia> redirect_stdio(stdout="log.txt", stderr="log.txt", stdin=devnull) do
    ...
end

但是,不支持传递同一文件的两个不同说明符。

julia> io1 = open("same/path", "w")

julia> io2 = open("same/path", "w")

julia> redirect_stdio(f, stdout=io1, stderr=io2) # not suppored

此外 stdin 参数可能与 stdoutstderr 的说明符不同。

julia> io = open(...)

julia> redirect_stdio(f, stdout=io, stdin=io) # not supported

Julia 1.7

redirect_stdio 需要 Julia 1.7 或更高版本。

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.redirect_stdio — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。