应用程序崩溃在pclose上

时间:2015-03-02 17:15:39

标签: android c linux file-io pipe

我有一个应用程序使用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导致我的应用程序无论如何都会崩溃,在稍后的阶段,就像执行此调用会杀死我的应用程序一样。

1 个答案:

答案 0 :(得分:0)

popen uses fork显然是shouldn't be used in Android。要查看正在运行的进程,可能唯一安全的方法是检入/proc目录。更多阅读:popen on android NDK