首页
社区
课程
招聘
[求助]android 下面 system 函数 使用的问题 --- 解决了结贴
发表于: 2014-1-8 14:10 8765

[求助]android 下面 system 函数 使用的问题 --- 解决了结贴

2014-1-8 14:10
8765
我在ubuntu下写了个

testsysfun.c

里面的内容如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>

int main(int argc, char *argv[])
{

       int iError;

        iError = 0;

        printf("Test...1 \n");

       iError =  system("pwd");

        printf("ls   iError = %d \n",iError>>8);

        printf("ls   Error String = %s \n",strerror(iError>>8));

        printf("Test...211111 \n");

        return 0;
}

然后用

arm-none-linux-gnueabi-gcc -static testsysfun.c -o testsysfun

编译过了

生成了 testsysfun 的可执行程序

我把它adb push到真机上,真机系统是4.0.4的并且已经ROOT了

结果运行出来,错误127

输出错误信息是

Key has expired

求大神们解救啊。为啥用system函数调用一个"pwd"命令会出现错误127啊?

百度了好多都找不到原因

还有,不一定是pwd 命令不行,ls也不行,也是127错误

如果编译成linux版本,在ubuntu下运行是可以的。。。

截图如下:



先谢谢各位大神啦。。。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 33
活跃值: (58)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
psr
2
自己顶下。。。
2014-1-8 14:31
0
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
In case /bin/sh could not be executed,the exit status will be that of a command that does exit(127).

小声的问一下,iError为什么要右移8位?
另外为什么不查看errorno?
2014-1-8 15:48
0
雪    币: 33
活跃值: (58)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
psr
4
因为百度是芥末说的,我就芥末干了,然后我查看的那个返回值就是127也就是你说的errorno

最后,这个问题我解决了,哈哈哈哈哈哈、、、、
2014-1-8 18:02
0
雪    币: 1413
活跃值: (401)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
5
解决了的话,发出来分享下呗
2014-1-10 09:14
0
雪    币: 260
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
问题怎么解决的,说下憋,兄弟。
2014-1-10 16:56
0
雪    币: 33
活跃值: (58)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
psr
7
最近忙,明天晚上写哈,到时候求版主加精,哈哈!
2014-1-12 02:50
0
雪    币: 2307
活跃值: (1013)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
8
arm-none-linux-gnueabi-gcc是OABI,嵌入式开发老一套,Android是EABI,SWI的调用约定不同导致运行时挂掉了。
你用NDK编译就可以走起,P大点东西还想加精么。
2014-1-12 15:19
0
雪    币: 33
活跃值: (58)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
psr
9
谢谢非虫哥,验证了下确实NDK可以,但是我不知道NDK会不会有版本限制问题。比如用高版本的NDK去编译,然后再低版本的android系统上运行,这个没验证过,哈哈,小弟不才,学习了,再次谢谢非虫哥。哈哈,还有OABI 和 EABI 刚百度了下才知道的,哈哈,谢谢非虫哥,又学习了。。。最后那个问题确实是调用约定不同,然后我其实做的工作就是把调用约定改了下就可以了,是没啥大的东西,额,下次不敢说加精了。。。
2014-1-13 11:55
0
游客
登录 | 注册 方可回帖
返回
//