c++ - 使用 Linux 访问并口

标签 c++ c linux parallel-port lpt

目前我是这样访问并口的:

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/

相关文章:

c++ - 保护 C++ 变量免于溢出?如果值小于任何数据类型的 UpperBound

c++ - Visual Studio 无法打开源文件 <vulkan.h>

c - 当两个管道都属于同一进程时,如何冲洗管道以清理 C 中的缓冲区?

C++:设计、函数模板重写和缺乏多态性

c++ - cpp : delete folder open by others

被 gdb print ptr 与 print "%s"混淆

c - 我应该 `#ifdef DEBUG` 保护 .c 文件中的调试功能吗?

c - c 中的动态内存分配,释放在使用 malloc() 之前分配的部分内存

linux - 长时间运行的进程远程终止?

linux - 避免在 Linux 中将进度条写入文件