红联Linux门户
Linux帮助

write函数出现错误invalid argument

发布时间:2011-10-28 22:32:46来源:红联作者:xupei040700428
今天用C语言写了一个测试程序,需要写sys目录下的文件,我通过write和open函数对其进行操作,程序在pc上试了一下,可以正常运行,但安装到手机上以后,会出现write 写失败,并通过errno打印出错误为invalid argument,那位高人能指点一下吗?
还有一个问题就是在刚进入程序的时候,就会有no such directory or files的错误提示,我只是对变量进行了赋值操作,难道是前面的#include文件出错,不明白,程序总共也没几行,不明白到底是什么原因,高人指点一下吧。
再此多谢啦!
文章评论

共有 2 条评论

  1. 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.
    不明白这个错误是怎么回事,请指教

  2. hstking 于 2011-10-29 21:42:36发表:

    我不知道你用的是什么手机。
    但是,我还真没听说过什么手机的环境跟PC是一样的。

    你在pc下能编译运行,是因为在PC的系统里有运行程序所必须的库文件。
    手机的系统,即使是android,就算是有库文件,也不会跟PC上是一样的。