Для этого вы можете использовать redirect_stdout
.
oldstd = stdout
redirect_stdout(somewhere_else)
ccall(:printf, Cint, (Cstring,), "Hello World!")
Base.Libc.flush_cstdio() # it might be necessary to flush C stdio to maintain the correct order of outputs or forcing a flush
redirect_stdout(oldstd) # recover original stdout
Вместо этого вы можете использовать метод redirect_stdout(f::Function, stream)
.Здесь f
должна быть функцией без параметров (например, () -> do_something(...)
).Этот метод автоматически восстанавливает поток до stdout
.Использование синтаксиса do
;
redirect_stdout(somewhere) do
ccall(:printf, Cint, (Cstring,), "Hello World!")
Base.Libc.flush_cstdio() # might be needed
end