【问题标题】:Write on thermal printer device in golang用golang写在热敏打印机设备上
【发布时间】:2018-11-10 00:13:35
【问题描述】:

我的 linux 机器上已经配置了热敏打印机 (ESC/POS),使用终端命令(以 root 身份)我可以打印:

echo "Hello!" > /dev/usb/lp0

但是,在 golang 中执行相同的过程没有任何反应:

package main

import (
    "fmt"
    "os"
)

func main() {
   fmt.Println("Hello Would!")

   f, err := os.Open("/dev/usb/lp0")

   if err != nil {
       panic(err)
   }

   defer f.Close()

   f.Write([]byte("Hello world!"))
}

我做错了什么?

【问题讨论】:

标签: linux go thermal-printer


【解决方案1】:

如文档中所述,os.Open() 以只读方式打开文件。

如果您检查了Write() 调用的返回值,您就会发现问题所在。始终检查错误。不要忽视它们,即使在像这样的小程序中;他们会告诉你哪里出了问题。

要解决此问题,请使用os.OpenFile()打开写入专用设备。

f, err := os.OpenFile("/dev/usb/lp0", os.O_RDWR, 0)

【讨论】:

    猜你喜欢
    • 2012-10-05
    • 1970-01-01
    • 2015-02-06
    • 2019-12-06
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多