-
-
[求助][求助]fork出来的子程序是阻塞的,导致主程序apk退出的时候调用System.exit(0);会卡死,怎么解决这个问题。
-
发表于:
2014-7-3 14:38
4944
-
[求助][求助]fork出来的子程序是阻塞的,导致主程序apk退出的时候调用System.exit(0);会卡死,怎么解决这个问题。
这是部分代码:
pid_t pid = fork();
else if (pid == 0) {
//子进程注册"/data/data/package..."目录监听器
int fileDescriptor = inotify_init();
int watchDescriptor;
watchDescriptor = inotify_add_watch(fileDescriptor, checkpath,IN_DELETE);
//分配缓存,以便读取event,缓存大小=一个struct inotify_event的大小,这样一次处理一个event
void *p_buf = malloc(sizeof(struct inotify_event));
//开始监听
size_t readBytes = read(fileDescriptor, p_buf,sizeof(struct inotify_event));
//read会阻塞进程,走到这里说明收到目录被删除的事件,注销监听器
free(p_buf);
inotify_rm_watch(fileDescriptor, IN_DELETE);
//执行业务逻辑......
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!