目前我是这样访问并口的:
ioperm(data->baseaddr,5,1);
outb(0x00,data->controlport);
inb(data->statusport);
最大的缺点:它需要 root 权限并且只能与真正的并行端口硬件一起工作(意味着不支持 USB-2-LPT 转换器)。
那么:是否有其他方式从并口读取/写入数据?
谢谢!
最佳答案
如您所述,用户必须具有访问并行端口的权限才能使可执行文件成功运行。通常,只有 root 用户才有权限访问这些端口,因此程序必须以 root 权限运行。但是,应该可以通过执行以下操作使非根用户能够运行可执行文件:
1) 使 root 成为可执行文件的所有者。一种方法是以 root 身份编译程序。
2) 赋予非用户执行程序的权限,但非root用户运行时,程序以root权限运行。您可以使用以下命令(作为 root)将程序设置为以所有者权限(即 root 权限)运行:chmod +s/name/of/executable
关于c++ - 使用 Linux 访问并口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27520767/