我有一段C代碼(不是NDK應用,普通的C代碼), 和我試圖廣播發送到我的應用程序, 但我得到的是:從C代碼發送廣播
Broadcasting: Intent { act=com.example.A_NAME }
我從來沒有收到完整的消息。
我運行的C代碼:
char broadcast[200];
sprintf(broadcast, "sh %s","com.example.A_NAME");
FILE* pipe = popen(broadcast, "r");
char buffer[128];
char result[1500];
while(!feof(pipe)) {
if(fgets(buffer, 128, pipe) != NULL)
sprintf(result, "%s%s", result,buffer);
}
pclose(pipe);
對於一個簡單的bash腳本,我能得到這個工作。從C,我試過system()
,execl()
等,但沒有。
我也嘗試將該命令放入腳本文件中,並執行腳本文件。 如果我從adb shell執行腳本,它就可以工作。如果我從C代碼執行它,它不起作用。
顯然與您當前的問題無關,但對您的代碼:http://stackoverflow.com/questions/5431941/while-feof-file-is-always-wrong – mafso