當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。