CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 6694|回复: 3

android的终端命令行下,C语言写应用调用system函数使用不了

[复制链接]
发表于 2015-8-17 20:56:27 | 显示全部楼层 |阅读模式
本帖最后由 xiaolonghun1 于 2015-8-18 15:03 编辑

我用C语言编写了一个“PWD”的终端命令行下的命令,但是显示执行错误。
按道理,上层有这个接口,底层系统应该带有 的才是http://blog.csdn.net/jancyliu/article/details/9114559
                               http://bbs.pediy.com/showthread.php?p=1254378
是不是android要在那边或者源代码里面把这个函数给添加进来,重新编译a20 cubie的源代码才可以?
有没有这个a20 android 的包含system("pwd");这个函数可以执行的源代码,我重新编译一下。
我是想通过写这个应用,然后让他一直检测按键是否按下,于是就执行某个脚本。可以顺利编译通过,但是就是执行不了。

或者有没有其他简便的可以绕过这个,检测按键执行脚本的。
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

#define EXIT_ERR(m) \
do\
{\
    perror(m);\
    exit(EXIT_FAILURE);\
}\
while (0);\

int main(void)
{
    int status ;
    status = system("ls -a");

    if(status == -1){
        EXIT_ERR("system error");
    }

    else{
        if(WIFEXITED(status))
        {
            if(WEXITSTATUS(status) == 0)
                printf("run command successful\n");
            else
                printf("run command fail and exit code is %d\n",WEXITSTATUS(status));
        }
        else
            printf("exit status = %d\n",WEXITSTATUS(status));
    }
    return 0;
}
~                                                                                                                                
~               

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

 楼主| 发表于 2015-8-17 21:00:22 | 显示全部楼层
#include<stdlib.h>

main()

{

//system(隆掳ls -al /etc/passwd /etc/shadow隆卤);
system("pwd");
system("ls -a");
}

或者这种简单命令也执行不了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-18 15:57:18 | 显示全部楼层
本帖最后由 xiaolonghun1 于 2015-8-21 08:26 编辑

在ndk-build下面就可以了,之前直接使用的是交叉编译工具,然后直接直接编译,但是不可以,如果使用ndk-buidl编译就不会报错了。具体原因看一下之前的那个链接地址。
但是还是不知道为什么。反正这样子是可以了。然后将指定路径里面的可执行文件宝贝出来。
arm-none-linux-gnueabi-gcc是OABI,嵌入式开发老一套,Android是EABI,SWI的调用约定不同导致运行时挂掉了。
你用NDK编译就可以
adb push a20 andoid terminal上传上去就可以了

.mk里面的内容

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_SRC_FILES:= hello.c
LOCAL_MODULE:= hello

LOCAL_FORCE_STATIC_EXECUTABLE := true
#LOCAL_STATIC_LIBRARIES := libc
#LOCAL_CFLAGS += -Iinclude/dir -DSOMEFLAGS

include $(BUILD_EXECUTABLE)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-3-29 14:27 , Processed in 0.023885 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部