Почему bufio.Reader не читает ввод из os.Stdin? ⇐ Linux
-
Anonymous
Почему bufio.Reader не читает ввод из os.Stdin?
В приведенном ниже коде:
основной пакет Импортировать ( "буфио" "ФМТ" "йо" "Операционные системы" ) функция main() { читатель: = bufio.NewReader(os.Stdin) _, _ = io.WriteString(os.Stdin, "Hello World!\n") текст, _ := readString('\n') fmt.Println(текст) } os.Stdin указывает на первый элемент таблицы дескрипторов файлов этого процесса (pid)
var ( Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin") Stdout = NewFile(uintptr(syscall.Stdout), "/dev/stdout") Stderr = NewFile(uintptr(syscall.Stderr), "/dev/stderr") ) Почему reader.ReadString('\n') не читает ввод (Hello World!, предоставленный io.WriteString()) на os.Stdin?
Обновление:
Написал Hello World! в os.Stdin после того, как reader.ReadString() готов к вводу, но безуспешно
основной пакет Импортировать ( "буфио" "ФМТ" "йо" "Операционные системы" "время" ) функция main() { читатель: = bufio.NewReader(os.Stdin) иди г() текст, _ := readString('\n') fmt.Println(текст) } функция г() { время.Сон(5 * время.Секунда) str := "Привет, мир!\n" n, ошибка: = io.WriteString(os.Stdin, str) если ошибка != ноль { fmt.Println(ошибка) } если n != len(str) { fmt.Println("ошибка") } }
В приведенном ниже коде:
основной пакет Импортировать ( "буфио" "ФМТ" "йо" "Операционные системы" ) функция main() { читатель: = bufio.NewReader(os.Stdin) _, _ = io.WriteString(os.Stdin, "Hello World!\n") текст, _ := readString('\n') fmt.Println(текст) } os.Stdin указывает на первый элемент таблицы дескрипторов файлов этого процесса (pid)
var ( Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin") Stdout = NewFile(uintptr(syscall.Stdout), "/dev/stdout") Stderr = NewFile(uintptr(syscall.Stderr), "/dev/stderr") ) Почему reader.ReadString('\n') не читает ввод (Hello World!, предоставленный io.WriteString()) на os.Stdin?
Обновление:
Написал Hello World! в os.Stdin после того, как reader.ReadString() готов к вводу, но безуспешно
основной пакет Импортировать ( "буфио" "ФМТ" "йо" "Операционные системы" "время" ) функция main() { читатель: = bufio.NewReader(os.Stdin) иди г() текст, _ := readString('\n') fmt.Println(текст) } функция г() { время.Сон(5 * время.Секунда) str := "Привет, мир!\n" n, ошибка: = io.WriteString(os.Stdin, str) если ошибка != ноль { fmt.Println(ошибка) } если n != len(str) { fmt.Println("ошибка") } }
Мобильная версия