Все
Здесь я хочу запустить файл .sh через системный вызов в Android NDK.
Я могу запустить команду cp,rm
через системный вызов.но команда sh не работает через системный вызов.
Я также установил busy-box на android. Я использую приведенный ниже код. Я установил все разрешения на test.sh
.
Код:
#include <stdlib.h>
#include <stdio.h>
#include <android/log.h>
#include <jni.h>
#define LOG_TAG "Demo"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
void Java_com_ndkdemo_NDKdemoActivity_systemcall(JNIEnv * env, jobject obj) {
int result;
result = system("cp /mnt/sdcard/test /Download");
LOGD("result is cp %d", result);
result = system("sh ./test.sh");
LOGD("result of test.sh is %d", result);
}
Вывод:
result is cp 0.
result of test.sh is 0.
Здесь я получаю 0 в system("sh ./test.sh");
, но не запустил скрипт test.sh
.
не могу получить вывод "Hi"
на консоли.
test.sh содержит
#!/system/bin/
echo "Hi"
Если я выполняю прямую команду по приглашению, то она работает нормально, и на консоли выводится "Hi"
.
Пожалуйста, помогитемне разобраться в этом вопросе.
Спасибо