C++ &引用;sudo chmod 666 ttyUSB0“;在c++;

C++ &引用;sudo chmod 666 ttyUSB0“;在c++;,c++,C++,我有一个打开、写入和读取ttyUSB0的程序;我有一个问题,我必须每天做COMand SUDO CHMOD 666 TTYSB00/COD>,我是否可以在C++中插入这个COMN??通常您可以调用chmod()C函数,但您似乎需要sudo,因此: system("sudo -S chmod 666 ttyUSB0 <<< PASSWORD") system(“sudo-S chmod 666 ttyUSB0允许访问串行端口(/dev/ttyUSBxxx)的原始问题也可以通过

我有一个打开、写入和读取ttyUSB0的程序;我有一个问题,我必须每天做COMand <代码> SUDO CHMOD 666 TTYSB00/COD>,我是否可以在C++中插入这个COMN??通常您可以调用
chmod()
C函数,但您似乎需要
sudo
,因此:

system("sudo -S chmod 666 ttyUSB0 <<< PASSWORD")

system(“sudo-S chmod 666 ttyUSB0允许访问串行端口(/dev/ttyUSBxxx)的原始问题也可以通过为系统上的特定程序提供所需的功能来解决。
调查
然后你可以做一些类似的事情:

setcap cap_sys_tty_config+ep /path/to/your/program
我不确定您到底需要什么功能(尚未尝试)

注意:设备节点是系统的一部分,其权限由系统所有者拒绝。如果我运行程序,并且它更改了我系统上文件和/或设备节点的权限,我将不高兴。
规范的方法是将用户添加到一个组中,例如,组
dialout
在debian上具有tty访问权限。

bitttcoinn我想到的是BittCoinn,但是停止重置模式的任何操作都不会更好吗?@MatstPeterson:在现代Linux系统上,正确的解决方案是创建一个udev r关于此设备的权限。每当连接USB设备时,udev系统将创建一个具有正确权限的
/dev/
条目。系统是否使用需要用户输入的命令?(例如,需要密码?)如果
sudo
需要密码,这也需要密码。您可以将系统设置为允许
sudo
无需密码,但这不是编程问题,这是适合超级用户的系统管理问题。或者您可以重新考虑是否需要
sudo
,或者可能不需要整个命令?可以我也需要密码,我可以在C++中输入密码吗?我已经更新了我的答案,用硬编码的密码来显示如何使用<代码> SUDO-S/SCOD>。这可能是安全的坏主意,但是如果你想这样做,你可以做到!<代码> SUDO < /Cord>密码保护可以在读查拉的基础上实现。来自终端设备的字符(
/dev/ptyXXX
或您拥有的什么),而不是通用POSIX
stdin
I/O流。