gpt4 book ai didi

android - 写入 : Invalid argument

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:09 24 4
gpt4 key购买 nike

我正在用 C 编写 native 可执行二进制文件,它将写入 android 设备节点:/sys/class/leds/lcd-brightness/brightness。将其推送到 /system/bin 并以 root 身份运行。

但是,系统调用write 将返回错误消息:“write:无效参数”

代码如下:

// set background brightness
int bfd = open("/sys/class/leds/lcd-backlight/brightness", O_WRONLY);

if(bfd < 0 ) {
perror("open");
exit(EXIT_FAILURE);
}

printf("bfd: %d\n", bfd);
printf("*p: %d\n", (int)*p);
if(write(bfd, p, 1) < 0) {
free(p);
perror("write");
exit(EXIT_FAILURE);
}
close(bfd);
close(fd);

p是指向数据的指针,我在write前打印了*p,就可以了。

/sys/class/leds/lcd-brightness/brightness 具有以下文件权限:

-rw-rw-rw 1 system system 4096 2018-04-18 18:46 brightness

我可以在 adb shell 中以 root 身份使用以下命令成功覆盖此文件

echo 100 > /sys/class/leds/lcd-backlight/brightness

我的代码有什么问题?我已经为这个问题苦苦挣扎了几个小时。任何建议表示赞赏。

谢谢

最佳答案

你的问题似乎是许可,这就是为什么你需要设置写入文件的标志

以下是您必须设置的不同标志。

试试这个代码

int bfd = open("/sys/class/leds/lcd-backlight/brightness", O_WRONLY | O_APPEND | S_IWUSR |S_IXUSR |S_IXOTH);
  1. S_IRUSR 将所有者的读取权限设置为 true。
  2. S_IWUSR 将所有者的写入权限设置为 true。
  3. S_IXUSR 将所有者的执行权限设置为 true。
  4. S_IRGRP 将组的读取权限设置为 true。
  5. S_IWGRP 将组的写入权限设置为 true。
  6. S_IXGRP 将组的执行权限设置为 true。
  7. S_IROTH 将其他用户的读取权限设置为 true。
  8. S_IWOTH 将其他用户的写入权限设置为 true。
  9. S_IXOTH 将其他用户的执行权限设置为 true。

希望对你有帮助

关于android - 写入 : Invalid argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49898242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com