今天用C语言写了一个测试程序,需要写sys目录下的文件,我通过write和open函数对其进行操作,程序在pc上试了一下,可以正常运行,但安装到手机上以后,会出现write 写失败,并通过errno打印出错误为invalid argument,那位高人能指点一下吗?
还有一个问题就是在刚进入程序的时候,就会有no such directory or files的错误提示,我只是对变量进行了赋值操作,难道是前面的#include文件出错,不明白,程序总共也没几行,不明白到底是什么原因,高人指点一下吧。
再此多谢啦!
xupei040700428 于 2011-10-30 11:20:37发表:
我把程序贴出来如下:
int set_light(char level)
{
char data, ch;
int fd;
fd = open("/sys/class/lcd/brightlightness",O_RDWR);
if(fd < 0)
printf("open fail\n");
if(read(fd, &ch, 1) < 0)
printf("read fail\n");
printf("ch = %d\n",ch);
data = level;
if(write(fd, &data, 1) < 0)
printf("write fail\n");
printf("errno=%s\n",strerrno(errno));
}
可以读到数据,并且通过adb shell cat /sys/class/lcd/brightlightness 看到读到的值与打印出的ch值一致,
但是运行程序,会打印出write fail的log,并且errno错误为invalid arguments.
不明白这个错误是怎么回事,请指教
hstking 于 2011-10-29 21:42:36发表:
我不知道你用的是什么手机。
但是,我还真没听说过什么手机的环境跟PC是一样的。
你在pc下能编译运行,是因为在PC的系统里有运行程序所必须的库文件。
手机的系统,即使是android,就算是有库文件,也不会跟PC上是一样的。