Android-NDK:无限循环没有被无限调用
我正在使用NDK为Android编写一个实用程序 在我的实用程序中,我分叉一个进程,并在该进程中运行以下代码:Android-NDK:无限循环没有被无限调用,android,c,android-ndk,java-native-interface,Android,C,Android Ndk,Java Native Interface,我正在使用NDK为Android编写一个实用程序 在我的实用程序中,我分叉一个进程,并在该进程中运行以下代码: //Screenshot thread int i = 0; for (;;) { char filename[255]; snprintf(filename, sizeof(filename), "/data/local/screenshots/screen%d.png", i); execlp("screencap", "screencap", "-p", fi
//Screenshot thread
int i = 0;
for (;;) {
char filename[255];
snprintf(filename, sizeof(filename),
"/data/local/screenshots/screen%d.png", i);
execlp("screencap", "screencap", "-p", filename, NULL);
i++;
sleep(500);
}
我发现屏幕截图是第一次创建的,但随后的屏幕截图没有被拍摄。当我停止程序时,我发现我有一个screen0.png
文件,但没有screen1.png
或任何后续文件。我已经阅读了文档,看起来Android函数需要毫秒参数
有什么想法吗 从手册页
返回值
exec()
函数仅在发生错误时返回。返回值为-1,设置errno以指示错误
因此,循环在
exec()
调用时被阻塞,除非发生错误,否则循环将保持在那里。这与此问题有关吗?这只是POSIX指定的方式。当然,这是有充分理由的。@njzk2exec
在同一过程中用另一个程序覆盖当前程序。它不会创建新进程。@njzk2,因为没有exec()。反之亦然。