目前我以这种方式访问并行端口:
ioperm(data->baseaddr,5,1);
outb(0x00,data->controlport);
inb(data->statusport);
最大的缺点:它需要root权限,仅适用于真正的并行端口硬件(意味着不支持USB-2-LPT转换器)。
那么:还有另一种方法是从/向并行端口读/写数据吗?
谢谢!
答案 0 :(得分:1)
正如您所提到的,用户必须具有访问并行端口的权限才能使可执行文件成功运行。通常,只有root用户才有权访问端口,因此必须以root权限运行程序。但是,应该可以通过执行以下操作使非root用户能够运行可执行文件:
1)使root成为可执行文件的所有者。一种方法是以root身份编译程序。
2)授予非用户执行程序的权限,但是当非root用户运行时,程序以root权限运行。您可以使用以下命令(以root身份)设置要使用所有者权限(即root权限)运行的程序:chmod +s /name/of/executable