猿问

在 golang 中写在热敏打印机设备上

我的 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!"))

}

我究竟做错了什么?


ABOUTYOU
浏览 246回答 1
1回答

慕森卡

如文档中所述,os.Open()以只读方式打开文件。如果您检查了您的电话返回,您就会发现问题Write()。始终检查错误。不要忽略它们,即使是在像这样的小程序中;他们会给你一个线索,告诉你哪里出了问题。要解决这个问题,请打开写入专用设备os.OpenFile()。f, err := os.OpenFile("/dev/usb/lp0", os.O_RDWR, 0)
随时随地看视频慕课网APP

相关分类

Go
我要回答