android C 中呼叫SHELL指令碼
阿新 • • 發佈:2019-02-11
最近在除錯4.2的程式碼發現需要在lunx中所以需要自己想辦法修改,
於是想到了 在C中呼叫指令碼
指令碼: check_voice_value.sh
#!/system/bin/sh
READ_FILE=$(cat /system/etc/3Gvol)var=`echo $READ_FILE | awk -F',' '{print $0}' | sed "s/,/ /g"`
/system/bin/log -t 3Gvoice_down "---cat /system/etc/3Gvol is $var---"
tinymix 5 $var
/system/bin/log -t 3Gvoice_down "tinymix $var execute success !"
該指令碼用於抓取一個檔案中的數字字元,
並抓取該數值並執行。
然後需要在.c中呼叫它,我使用的是popen
static void do_shell(void)
{
char buffer[80];
FILE *fp;
LOGFUNC("-----%s-----------\n",__func__);
if(0 != access(VOL_PATH,R_OK))
{
LOGFUNC("%s, %s \n",__func__,strerror(errno));
return ;
}
fp = popen(VOL_PATH,"r");
if(fp == NULL)
{
LOGFUNC("%s, failed tp get line \n",__func__);
}
fgets(buffer,sizeof(buffer),fp);
pclose(fp);
}
在呼叫的時候需要修改
check_voice_value.sh的許可權
修改為755或者777都行