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

我明白这个CON名字/dev/tty在Linux中是等价的。

但是当我使用一个写入这个文件的程序时,它不会打印任何东西,它只适用于 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")

}   

该程序 "*** Stdout redirected"在 Linux 中打印,但在 Windows 中不打印。

该问题与ttyName.

我用作con名称,但似乎它不起作用。

我也试过: "con:", "\\\\.\\con", "\\\\.\\con:", "\\\\?\\con", 和conout.


如何使用它打印到控制台?


我从这个网站上获得了一些想法:

https ://www.mkssoftware.com/docs/man5/dev_console.5.asp


一只名叫tom的猫
浏览 85回答 1
1回答

HUH函数

确保您使用 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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go