首页
社区
课程
招聘
[求助][求助]fork出来的子程序是阻塞的,导致主程序apk退出的时候调用System.exit(0);会卡死,怎么解决这个问题。
发表于: 2014-7-3 14:38 4945

[求助][求助]fork出来的子程序是阻塞的,导致主程序apk退出的时候调用System.exit(0);会卡死,怎么解决这个问题。

2014-7-3 14:38
4945
这是部分代码:
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);
//执行业务逻辑......
}

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 422
活跃值: (115)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
应该是要设置主程序的信号处理吧,不接收子进程的信号。
2014-7-4 13:53
0
游客
登录 | 注册 方可回帖
返回
//