为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
一只名叫tom的猫 2022-06-27 15:24:34
我明白这个CON名字/dev/tty在Linux中是等价的。但是当我使用一个写入这个文件的程序时,它不会打印任何东西,它只适用于 Linux。我想我没有正确使用它。重要提示:我不是在寻找解决方法fmt.Println,我需要能够打印到这个文件,就像我在 Linux ( /dev/tty) 中所做的那样。这是程序:package mainimport (    "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")}   该程序 "*** Stdout redirected"在 Linux 中打印,但在 Windows 中不打印。该问题与ttyName.我用作con名称,但似乎它不起作用。我也试过: "con:", "\\\\.\\con", "\\\\.\\con:", "\\\\?\\con", 和conout.如何使用它打印到控制台?我从这个网站上获得了一些想法:https ://www.mkssoftware.com/docs/man5/dev_console.5.asp
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

确保您使用 Windows 命令提示符对此进行测试,CON因为使用 3rd 方终端仿真器(如 IDE、Hyper.js 等中的嵌入式仿真器)可能无法正常工作。


您列出的选项应该可以工作,大写的CON(旧版 DOS 名称)或\\.\CON(UNC 名称)是安全的赌注:


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

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


查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信