pclose上的应用程序崩溃
问题描述:
我有一个应用程序使用popen
解析命令行的输出。但是,在Android上进行测试时,它在pclose
上崩溃:为什么?当其他的Unix环境中测试我有没有错误...pclose上的应用程序崩溃
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
导致我的应用程序反正崩溃,在以后的阶段,如果这样调用杀死我的应用程序。
答
popen
uses fork
显然shouldn't be used in Android。要查看哪些进程正在运行,可能唯一安全的方法是检查/proc
目录。更多阅读:popen on android NDK
http://*.com/questions/5431941/while-feof-file-is-always-wrong – Gopi 2015-03-02 17:21:21
@戈皮感谢您的提示,请检查更新... – Antonio 2015-03-02 18:06:24