免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4700 | 回复: 12
打印 上一主题 下一主题

[Q]请问如何能够找到一个进程打开的所有fd,在重启前都flush下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-18 17:00 |只看该作者 |倒序浏览
{:2_166:}  当目前的进程出现异常的时候,需要重启系统,但是由于分层的原因并不清楚有多少线程开了多少fd,
目前能想到的方法是查询/proc文件系统.
先谢谢.

论坛徽章:
0
2 [报告]
发表于 2011-01-18 17:18 |只看该作者
重启前不要把所有的fd关闭吗?关闭时不就会自动fflush吗?

论坛徽章:
0
3 [报告]
发表于 2011-01-18 17:35 |只看该作者
谢谢, 补充一下,这样的: 重启是直接复位寄存器,不会有机会调_exit和fclose的

论坛徽章:
0
4 [报告]
发表于 2011-01-18 17:44 |只看该作者
记住打开的文件,复位前关闭

论坛徽章:
0
5 [报告]
发表于 2011-01-18 21:03 |只看该作者
系统都关闭了 所有的文件都关闭了吧

论坛徽章:
0
6 [报告]
发表于 2011-01-18 21:12 |只看该作者
不管你是什么目的,貌似lsof是你要的功能

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
7 [报告]
发表于 2011-01-18 21:26 |只看该作者
本帖最后由 koolcoy 于 2011-01-18 21:33 编辑

我理解错了~~~

论坛徽章:
0
8 [报告]
发表于 2011-01-18 22:04 |只看该作者
直接调用sync系统调用,所有文件都会flush,但如果FILE *里面的应用层buffer的话,只能通知进程自己解决了

论坛徽章:
0
9 [报告]
发表于 2011-01-19 11:35 |只看该作者
我理解错了~~~
koolcoy 发表于 2011-01-18 21:26



    把理解错的原因删除了,不好

论坛徽章:
0
10 [报告]
发表于 2011-01-19 14:11 |只看该作者

  1. fflush(NULL);
  2. sync();
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP