我有一个应用程序使用popen
从命令行解析输出。但是,在Android上测试时,它会在pclose
崩溃:为什么?在其他Unix环境中测试时我没有错误...
char commandLine[256] = "ps -A | grep -c myApplication";
FILE * fPipe = popen(commandLine, "r");
if (fPipe == NULL)
return 0;
int count = -1;
fscanf(fPipe, "%d", &count);
///If here I print count, I get zero, which is correct...
pclose(fPipe); ///Here it crashes!
return count;
更新:似乎使用popen
导致我的应用程序无论如何都会崩溃,在稍后的阶段,就像执行此调用会杀死我的应用程序一样。
答案 0 :(得分:0)
popen
uses fork
显然是shouldn't be used in Android。要查看正在运行的进程,可能唯一安全的方法是检入/proc
目录。更多阅读:popen on android NDK