Android NDK:无限循环未被无限调用
Android NDK: Infinite Loop Not Being Called Infinitely
我正在使用 NDK 为 Android 编写实用程序。
在我的实用程序中,我 fork 了一个进程,在那个进程中,我 运行 以下代码:
//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 sleep 函数采用毫秒参数。
有什么想法吗?
来自 execve(2)
手册页
RETURN VALUE
The exec()
functions return only if an error has occurred. The return value is -1, and errno is set to indicate the error.
因此循环在 exec()
调用处被阻塞并停留在那里,除非发生错误。
我正在使用 NDK 为 Android 编写实用程序。
在我的实用程序中,我 fork 了一个进程,在那个进程中,我 运行 以下代码:
//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 sleep 函数采用毫秒参数。
有什么想法吗?
来自 execve(2)
手册页
RETURN VALUE
The
exec()
functions return only if an error has occurred. The return value is -1, and errno is set to indicate the error.
因此循环在 exec()
调用处被阻塞并停留在那里,除非发生错误。