Aug*_*nta 1 linux thermal-printer go
我已经在我的linux机器上配置了热敏打印机(ESC/POS)并使用终端命令(作为root)我可以打印它:
echo "Hello!" > /dev/usb/lp0
Run Code Online (Sandbox Code Playgroud)
但是,在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!"))
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
如文档中所述,以os.Open()只读方式打开文件.
如果您检查了Write()来电的回复,您会发现问题.始终检查错误.不要忽视它们,即使在像这样的小程序中; 他们会告诉你什么是错的.
要解决此问题,请打开特殊设备以进行书写os.OpenFile().
f, err := os.OpenFile("/dev/usb/lp0", os.O_RDWR, 0)
Run Code Online (Sandbox Code Playgroud)