1. 程式人生 > >android C 中呼叫SHELL指令碼

android C 中呼叫SHELL指令碼

  最近在除錯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都行