使用Linux访问并行端口

时间:2014-12-17 07:58:32

标签: c++ c linux parallel-port lpt

目前我以这种方式访问​​并行端口:

ioperm(data->baseaddr,5,1);
outb(0x00,data->controlport);
inb(data->statusport);

最大的缺点:它需要root权限,仅适用于真正的并行端口硬件(意味着不支持USB-2-LPT转换器)。

那么:还有另一种方法是从/向并行端口读/写数据吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

正如您所提到的,用户必须具有访问并行端口的权限才能使可执行文件成功运行。通常,只有root用户才有权访问端口,因此必须以root权限运行程序。但是,应该可以通过执行以下操作使非root用户能够运行可执行文件:

1)使root成为可执行文件的所有者。一种方法是以root身份编译程序。

2)授予非用户执行程序的权限,但是当非root用户运行时,程序以root权限运行。您可以使用以下命令(以root身份)设置要使用所有者权限(即root权限)运行的程序:chmod +s /name/of/executable