...
1 package stdio
2
3 import (
4 "errors"
5 "fmt"
6 "io"
7 "os"
8 "syscall"
9 )
10
11 func Main() {
12 b, err := io.ReadAll(os.Stdin)
13 if err != nil {
14 panic(err)
15 }
16
17 if _, err = fmt.Fprintln(os.Stdin, " "); errors.Unwrap(err) != syscall.EBADF {
18 panic(fmt.Sprint(err.Error(), "!=", syscall.EBADF))
19 }
20 printToFile("stdout", os.Stdout, len(b))
21 printToFile("stderr", os.Stderr, len(b))
22 }
23
24 func printToFile(name string, file *os.File, size int) {
25 message := fmt.Sprint(name, " ", size)
26 n, err := fmt.Fprintln(file, message)
27 if err != nil {
28 println(err.Error())
29 panic(name)
30 }
31 if n != len(message)+1 {
32 println(n, "!=", len(message))
33 panic(name)
34 }
35 }
36
View as plain text