我有一个用户级应用程序,需要通过写入设备文件(需要 root 权限)来启用/禁用设备。
这是我的接口的当前实现:
bool DeviceInterface::EnableDevice( bool isEnabled )
{
bool isSuccessful = false;
//enable device
if(isEnabled)
{
isSuccessful = (system("enableDevice.sh 1") == 0)? true : false;
}
//disable device
else
{
isSuccessful = (system("enableDevice.sh 0") == 0)? true : false;
}
return isSuccessful ;
}
我的脚本“enableDevice.sh”看起来像这样,并且在以 root 身份运行时运行良好:
echo $1 > /sys/devices/device_file
这会失败,因为它需要 root 权限才能写入设备文件。我对“pipes”、“fork”和“exec”完全陌生。谁能帮助我如何将“0”或“1”传递给脚本以启用和禁用设备?