2012-03-27 47 views
1

我想使用Native C程序在Android Shell上運行腳本文件。想要在Android NDK中使用系統調用運行腳本文件

我試過使用system函數,但它不工作。

result = system("sh ./test.sh"); 

LOGD("result is %d", result); 

系統命令返回0表示未成功執行腳本文件。

test.sh包含

echo "test...." 

的Android NDK應用程序無法打印test....當這個系統調用運行。

即使任何腳本不能使用系統調用啓動。我檢查了超過10個不同的腳本。

test.sh有777權限

任何幫助,將不勝感激。

+0

應該是結果=系統( 「SH ./test.sh」);說前面的黑點 – Blackbelt 2012-03-27 08:38:30

+0

@blackbelt這個命令直接工作,爲什麼它不能在系統調用中工作 – user1089679 2012-03-27 09:47:32

+0

@blackbelt它不工作 – user1089679 2012-03-27 09:50:25

回答

1

'sh'在哪裏?你的''是什麼。'應用程序運行時的當前目錄?嘗試:

result = system("/system/bin/sh /full/path/to/test.sh");

+0

test.sh在我目前的direcory上...我累了上面的命令也沒有工作 – user1089679 2012-03-28 16:04:19

+0

根據到http://linux.die.net/man/3/system,如果system()返回0,那麼該命令起作用,否則它會是-1。也許程序運行,但由於某種原因它的輸出不顯示?嘗試使用寫入文件的shell腳本(「echo test >> test1」),然後查看test1是否存在... – gfour 2012-03-28 18:03:59

+0

我也試過這個選項,但它不起作用。我使用上面的命令使用shell腳本編寫一個文件。但使用此文件後文件不會退出 – user1089679 2012-03-29 01:39:37

相關問題