27 lines
375 B
Go
27 lines
375 B
Go
//go:build !windows
|
|
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
"syscall"
|
|
)
|
|
|
|
func redirectProcessStdStreamsToFile(f *os.File) error {
|
|
if f == nil {
|
|
return nil
|
|
}
|
|
|
|
fd := int(f.Fd())
|
|
if err := syscall.Dup2(fd, int(os.Stdout.Fd())); err != nil {
|
|
return err
|
|
}
|
|
if err := syscall.Dup2(fd, int(os.Stderr.Fd())); err != nil {
|
|
return err
|
|
}
|
|
|
|
os.Stdout = f
|
|
os.Stderr = f
|
|
return nil
|
|
}
|