GoLang-termbox:panic:open/dev/tty:没有这样的设备或地址

GoLang-termbox:panic:open/dev/tty:没有这样的设备或地址,go,ubuntu-12.04,tty,Go,Ubuntu 12.04,Tty,我在Ubuntu12.04LTS机器上使用Go1.2编码——使用LiteIDE(非常满意) 我下载并安装了内置的演示键盘.go-buildfine 但是当我从LiteIDE运行时,我会感到恐慌——所有termbox演示都会发生同样的情况: panic: open /dev/tty: no such device or address 任何线索都会有帮助……好的,这是完全合理的:交互式终端应用程序要求终端可用。终端可以是真实的,也可以是虚拟的(比如当你点击Ctrl-Alt-F1时在一个典型的x8

我在Ubuntu12.04LTS机器上使用Go1.2编码——使用LiteIDE(非常满意)

我下载并安装了内置的演示键盘.go-buildfine

但是当我从LiteIDE运行时,我会感到恐慌——所有termbox演示都会发生同样的情况:

panic: open /dev/tty: no such device or address

任何线索都会有帮助……

好的,这是完全合理的:交互式终端应用程序要求终端可用。终端可以是真实的,也可以是虚拟的(比如当你点击Ctrl-Alt-F1时在一个典型的x86机器上看到的Linux虚拟终端),也可以是模拟的(比如xterm、rxvt、GNOME终端和其他很多提供的终端)

与Windows相反,在Windows中,运行类型为“console”的程序会强制创建一个console窗口并附加一个应用程序,在POSIX系统上没有“类型”的应用程序,如果应用程序想要一个真正的终端用于其I/O,它会对此进行特殊检查,如果失败,应用程序发出错误信号并退出1。现在很少有人能接触到真正的硬件终端,所以大部分时间都在使用仿真,然后我们讨论所谓的Linux虚拟终端、GUI终端模拟器和终端控制台多路复用器,如
screen
tmux
——它们都为运行它们控制的程序分配虚拟终端

所以基本上你有以下选择:

  • 在IDE中找到一个设置,使其在运行程序时分配一个伪终端。有些程序可以通过将终端仿真器嵌入其UI或显式运行来实现这一点

  • 教IDE在终端仿真器中运行程序。他们中的大多数人遵守古老的
    xterm
    所建立的惯例,并接受
    -e
    命令行选项,因此

    ./myprogram
    
    您的IDE应该运行

    xterm -e ./myprogram
    
    如果您使用的是Debian系统或其衍生产品,您可能会侥幸逃脱

    x-terminal-emulator -e ./myprogram
    
    这应该会生成您首选的终端模拟器程序

  • 停止在IDE中运行代码,并使用常规的

    go build
    ./myprogram
    
    工作流程

我从来没有使用过LiteIDE,所以没有直接的经验如何使用它,你必须自己做研究



1有些程序可以很高兴地与终端连接或不连接,shell(如
bash
zsh
)和解释器(如
Tcl
Python
)就是很好的例子:当它们检测到可用的终端设备时,它们进入交互模式,启用行编辑等等,否则,他们只是从标准输入中读取代码并执行它。另一个很好的例子是Git:它的高级程序检测它们是否连接到终端,如果连接到终端,它们可能会启用输出着色,如果它们的输出即将溢出一屏行,则会自动生成一个寻呼机程序;否则,他们就不会大惊小怪,直接将输出转储到标准输出流中。

好的,这是完全合理的:交互式终端应用程序要求终端可用。终端可以是真实的,也可以是虚拟的(比如当你点击Ctrl-Alt-F1时在一个典型的x86机器上看到的Linux虚拟终端),也可以是模拟的(比如xterm、rxvt、GNOME终端和其他很多提供的终端)

与Windows相反,在Windows中,运行类型为“console”的程序会强制创建一个console窗口并附加一个应用程序,在POSIX系统上没有“类型”的应用程序,如果应用程序想要一个真正的终端用于其I/O,它会对此进行特殊检查,如果失败,应用程序发出错误信号并退出1。现在很少有人能接触到真正的硬件终端,所以大部分时间都在使用仿真,然后我们讨论所谓的Linux虚拟终端、GUI终端模拟器和终端控制台多路复用器,如
screen
tmux
——它们都为运行它们控制的程序分配虚拟终端

所以基本上你有以下选择:

  • 在IDE中找到一个设置,使其在运行程序时分配一个伪终端。有些程序可以通过将终端仿真器嵌入其UI或显式运行来实现这一点

  • 教IDE在终端仿真器中运行程序。他们中的大多数人遵守古老的
    xterm
    所建立的惯例,并接受
    -e
    命令行选项,因此

    ./myprogram
    
    您的IDE应该运行

    xterm -e ./myprogram
    
    如果您使用的是Debian系统或其衍生产品,您可能会侥幸逃脱

    x-terminal-emulator -e ./myprogram
    
    这应该会生成您首选的终端模拟器程序

  • 停止在IDE中运行代码,并使用常规的

    go build
    ./myprogram
    
    工作流程

我从来没有使用过LiteIDE,所以没有直接的经验如何使用它,你必须自己做研究


1有些程序可以很高兴地与终端连接或不连接,shell(如
bash
zsh
)和解释器(如
Tcl
Python
)就是很好的例子:当它们检测到可用的终端设备时,它们进入交互模式,启用行编辑等等,否则,他们只是从标准输入中读取代码并执行它。另一个很好的例子是Git:它的高级程序检测它们是否连接到终端,如果连接到终端,它们可能会启用输出着色,如果它们的输出即将溢出一屏行,则会自动生成一个寻呼机程序;否则,他们就不再大惊小怪,直接将输出转储到标准输出流中。

1)如何运行演示?这是通过在IDE中点击一些“构建并运行”键实现的,还是在终端窗口中实现的?2) 如果是后者,你会怎么做