关于 android 子进程域名解析失败的问题

场景:

android ndk 开发

两个进程,一个主进程,一个子进程,主进程创建子进程

主进程和子进程都调用getaddrinfo做域名解析

现象:

主进程域名解析一切OK

子进程失败,错误码:HOST_NOT_FOUND

 

一直以为是android的bug,去网上找,没有任何相关的问题和解答。

后来想到创建子进程使用了自己写的一个封装类,不知道直接用fork + exec情况如何。试了一下,没有这个问题,这就好办了,对比一下就应该能找到原因了。

我们的进程分装类里面在fork + exec的基础上,还在子进程关闭了所有从父进程继承的描述符(除了0、1、2),去掉这段逻辑解决问题。

仔细研究一下android平台用fork + exec创建的子进程情况,发现子进程不做任何事就已经有很多打开的文件描述符了,从8一直到18都是打开的。这其中某一些应该与域名解析有关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting Horse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值