gpt4 book ai didi

go - 写入CON(Windows控制台)不会打印到STDOUT(控制台)

转载 作者:行者123 更新时间:2023-12-01 22:11:04 25 4
gpt4 key购买 nike

我知道CON名称与Linux中的/dev/tty等效。
但是,当我使用写入该文件的程序时,它不打印任何内容,仅在Linux上有效。
我认为我没有正确使用它。
重要信息:我不是在寻找像fmt.Println这样的变通办法,我需要能够像在Linux(/dev/tty)中那样打印到该文件。
这是程序:

package main

import (
"fmt"
"os"
"runtime"
)


func main() {

var ttyName string
if runtime.GOOS == "windows" {
fmt.Println("*** Using `con`")
ttyName = "con"
} else {
fmt.Println("*** Using `/dev/tty`")
ttyName = "/dev/tty"
}

f, _ := os.OpenFile(ttyName, os.O_WRONLY, 0644)

fmt.Fprintln(f, "*** Stdout redirected")
}
该程序在Linux中打印 "*** Stdout redirected",但在Windows中不打印。
问题与 ttyName有关。
我使用 con作为名称,但似乎不起作用。
我也尝试过: "con:""\\\\.\\con""\\\\.\\con:""\\\\?\\con"conout
如何使用它打印到控制台?
我从这个网站上获取了一些想法:
https://www.mkssoftware.com/docs/man5/dev_console.5.asp

最佳答案

确保您使用Windows命令提示符进行测试,因为CON可能无法与第三方终端仿真器(如IDE,Hyper.js等中的嵌入式仿真器)按预期工作。
您列出的选项应该可以工作,大写的CON(旧DOS名称)或\\.\CON(UNC名称)是安全的选择:

f, _ := os.OpenFile("CON", os.O_WRONLY, 0644) 
f, _ := os.OpenFile("\\\\.\\CON", os.O_WRONLY, 0644)

关于go - 写入CON(Windows控制台)不会打印到STDOUT(控制台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63683963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com