我有一个这样的shell脚本,
#Script name : test.sh
mkdir /boot
mount -t vfat /dev/block/mmcblk0p1 /boot
cp file1 /boot
umount /boot
mkdir -p /test1/test2/test3
cp file2 /test1/test2
cp file3 /test1/test2/test3
STATUS=TRUE
现在这个脚本位于 /test/ 目录中。我从 ac 函数调用这个脚本,该函数是通过 jni 从 android 应用程序调用的。我正在使用此函数在 C 中调用我的脚本
void Java_com_ndkdemo_NDKdemoActivity_systemcall(JNIEnv * env, jobject obj) {
fp = popen(". /test/./test.sh; echo STATUS=$STATUS","r");
while (fgets(buffer, sizeof (buffer), fp) != 0)
{
LOGD("%s",buffer);
}
}
现在,当我从我的活动中调用此系统调用函数时,它无法执行脚本 test.sh 中的命令如果我从普通 C 源代码编译二进制文件并在控制台上执行该二进制文件,则相同的脚本正在工作。我尝试使用“chmod 777 /test/test.sh”授予权限,但仍然无法正常工作。
任何帮助将不胜感激。谢谢你。