首页 > 解决方案 > c++代码和python代码读取/dev/fb0 linux ubuntu16.4的区别

问题描述

我正在尝试将一些 c++ 代码转换为我的项目的 python。但我没有从两个代码中得到相同的输出。

所以c++代码是

 int fd_frbuf;
 fd_frbuf = open("/dev/fb0", O_RDWR|O_SYNC);
 printf("%d\n", fd_frbuf); 
 if (fd_frbuf < 1) {
     printf("Invalid fb0 device file\n");
 }

输出为 3。

我的python代码是

 fd_frbuf = open("/dev/fb0", "r+b")
 print(fd_frbuf.read())

输出什么都没有,所以我对 fb0 的检查是否可用"< 1"总是错误的。

我努力了,

  1. fd_frbuf =  os.open("/dev/fb1", os.O_RDWR|os.O_SYNC)
    print(os.read(fd_frbuf, 1)
    
  2. 试图以不同的方式打印,

    print(struct.unpack('i', fd_frbuf.read(4))[0])
    
    print(np.fromfile(fd_frbuf, dtype=np.uint32))
    

如何读取此文件以便获得与 c++ 相同的输出?

标签: pythonc++io

解决方案


推荐阅读