- 主题:求助一个glibc相关的问题
我看下来,重点不是怎么处理读文件的问题,而是调用第三方函数,怎么做好隔离。不应该共享给它的资源,比如文件句柄,就不要给。
如果可以的话,调用第三方库也用fork出的进程,把文件句柄都关掉,再调用;传递数据用share mem。
【 在 flingfish (飞着的鱼) 的大作中提到: 】
: 确实,跟这个是同一个问题
: 大佬你是怎么搜到这个问题的,可否分享一下,我也提高一下search的能力。。。
: 我这边情况不太一样,第三方函数我控制不了,不能用_exit()解决。好在这个函数比较特殊,我可以在call它之前ftell一下,call完了再fseek。。。
: 【 在 z16166 的大作中提到: 】
--
FROM 115.199.101.*
大哥,你们难道都没听说过屎山能跑就不要动的箴言吗
我不过调用了一个屎山里的API,屎山里的API又辗转十万八千里调用到了这个第三方函数,中间还有一堆鬼知道在干什么的的ctx维护,信号量同步,然后这坨屎山安安稳稳运行了十几年了,你觉得为了这点小问题去大动干戈搞什么多一层的fork,share memory,别的不说,你问问代码review有人肯帮你+2不。。。
大家都现实一点,让自己的生活更加轻松一点不香嘛。。。
【 在 StephenLee 的大作中提到: 】
: 我看下来,重点不是怎么处理读文件的问题,而是调用第三方函数,怎么做好隔离。不应该共享给它的资源,比如文件句柄,就不要给。
: 如果可以的话,调用第三方库也用fork出的进程,把文件句柄都关掉,再调用;传递数据用share mem。
--
FROM 43.254.66.*
可以了,能找到这里已经很厉害了.
以前公司走一套定制的clone流程规避了这些巨坑.
【 在 flingfish 的大作中提到: 】
: 大哥,你们难道都没听说过屎山能跑就不要动的箴言吗
: 我不过调用了一个屎山里的API,屎山里的API又辗转十万八千里调用到了这个第三方函数,中间还有一堆鬼知道在干什么的的ctx维护,信号量同步,然后这坨屎山安安稳稳运行了十几年了,你觉得为了这点小问题去大动干戈搞什么多一层的fork,share memory,别的不说,你问问代码review有人肯帮你+2不。。。
: 大家都现实一点,让自己的生活更加轻松一点不香嘛。。。
--
FROM 117.174.122.*
这种多进程读文件踩坑很有可能。我会弄一个进程读文件,pipe给其它的进程。跟系统打交道的api和handle能不share就不要share
--
FROM 91.39.80.*
每有读一个文件的时候都这么来一下吗。。
话说你们是用C做什么的,我工作十来年,产品代码里面需要我自己写读写文件功能的不超过3次。。。
【 在 moudy 的大作中提到: 】
: 这种多进程读文件踩坑很有可能。我会弄一个进程读文件,pipe给其它的进程。跟系统打交道的api和handle能不share就不要share
--
FROM 43.254.66.*
我们给嵌入式系统提供类似于libc这样的基础io库,各种坑见太多了
【 在 flingfish 的大作中提到: 】
: 每有读一个文件的时候都这么来一下吗。。
: 话说你们是用C做什么的,我工作十来年,产品代码里面需要我自己写读写文件功能的不超过3次。。。
--
FROM 91.39.80.*
不明觉厉
【 在 moudy 的大作中提到: 】
: 我们给嵌入式系统提供类似于libc这样的基础io库,各种坑见太多了
:
--
FROM 43.254.66.*
你这么说,那不是调用第三方函数的问题呀,整个问题都很大。这一坨都别改,全隔离算了。
要不是不知道你调用的频率和依赖,都想劝你包装一个独立程序去跑了,调什么api,debug不够烦的。
【 在 flingfish (飞着的鱼) 的大作中提到: 】
: 大哥,你们难道都没听说过屎山能跑就不要动的箴言吗
: 我不过调用了一个屎山里的API,屎山里的API又辗转十万八千里调用到了这个第三方函数,中间还有一堆鬼知道在干什么的的ctx维护,信号量同步,然后这坨屎山安安稳稳运行了十几年了,你觉得为了这点小问题去大动干戈搞什么多一层的fork,share memory,别的不说,你问问代码review有人肯帮你+2不。。。
: 大家都现实一点,让自己的生活更加轻松一点不香嘛。。。
: 【 在 StephenLee 的大作中提到: 】
--
FROM 115.199.101.*