C_and_CPP 板


LINE

请问有需要在离开 process 时, close fd 吗? 我想这大家一定都会说是。 开档时, 核心分配一块 file structure,fd 就是每个 process 内的 fd table 的索引,fd 就会指向某个文件的 inode。 当每一次指向(引用),就会引用+1 当完全没process引用了此文件,记忆体就会被销毁? 想请问 1 核心分配的 file structure 是 heap memory 吗? 2 请问 process exit 时,引用会消失吗? 如果引用会消失,那有必要还要 close(fd)? 感谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.115.72.6 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1627304107.A.BE9.html
1F:推 Schottky: 看平台而定。如果你在写冷气机或遥控直升机的程式, 07/27 02:20
2F:→ Schottky: 有可能不会自动帮你 close fd 07/27 02:20
3F:→ Lipraxde: OS 在 process 结束回收资源的时候会帮你关吧,就像乱 07/27 08:20
4F:→ Lipraxde: 丢垃圾妈妈会帮忙收的感觉? 07/27 08:20
5F:推 CGS0: 保持好的习惯 ,会让你写大程式时 ,减少很多除错的时间 07/27 13:18
6F:推 cuteSquirrel: 最好养成有开有关的习惯 07/27 13:45
7F:推 Qbsuran: 那你觉得为什麽不用关 07/27 15:19
8F:推 d630200x: 养成习惯吧 07/28 00:04
9F:→ sunneo: 要关啊 假设今天把fd fileop 真正mapping到自动车跟车库 07/28 00:45
10F:→ sunneo: 车子跑一跑,车库没关,那就有差了 07/28 00:45
11F:推 b0920075: trace 了一下 linux 5.10.1 开启 regular file 会在 fs 07/28 01:46
12F:→ b0920075: /file_table.c 的 __alloc_file 用 kmem_cache_zalloc 07/28 01:46
13F:→ b0920075: 分配 object , kernel 的动态分配记忆体不确定有没有 07/28 01:46
14F:→ b0920075: 称为 heap 的惯例(usermode 下看 process memory maps 07/28 01:46
15F:→ b0920075: 是直接就写 heap , kernel 印象没看过这种说法?) 07/28 01:46
16F:推 b0920075: exit syscall 就会call filp_close 关档案引用减一,以 07/28 01:54
17F:→ b0920075: 上是 5.10.1 版本的 kernel 07/28 01:54
18F:→ b0920075: 如果是linux 然後 process 又是正常关掉 linux 是会帮 07/28 01:56
19F:→ b0920075: 你收好,但其他 os 就不好说了吧 07/28 01:56
20F:→ isaacting: 有些东西没有跑os的,不关会造成严重的错误 07/28 12:02
21F:→ isaacting: 我曾经在mcu上对sd卡读写,有api类似开关档,写了之後 07/28 12:03
22F:→ isaacting: 没有下关的指令,会让sd card读写造成错误 07/28 12:03
23F:推 Killercat: 通常关一关比较好 07/28 16:26
24F:推 pponywong: 同上面讲的 fd 不见得是档案 char kernel driver 都有 07/28 19:42
25F:→ pponywong: 可能用fd来操作 kernel driver不一定保证帮你处理 07/28 19:43
26F:→ pponywong: resource release的操作 我就遇过系统中直接发signal 07/28 19:44
27F:→ pponywong: 去砍掉程式 造成kernel panic的 07/28 19:44
28F:→ alex70266: 想不到什麽理由不关啦,更何况这是确保安全的习惯 07/28 23:11
29F:→ alex70266: 难道有了免治马桶以後就不用买卫生纸吗XD 07/28 23:12
30F:推 askacis: 不关fd, 则 process 会占用 一个 fd号码,系统跑久之後你 07/28 23:59
31F:→ askacis: 就会发现为什麽没办法开档了,因为系统的 fd都用光光了 07/28 23:59
32F:→ askacis: 很多系统灵异现象都是这样来的,记得用 lsof 查谁占住了 07/29 00:00
33F:→ askacis: 一堆 fd 07/29 00:00
34F:推 b0920075: 如果是 process 一直跑但是不关 fd 达到给 process 的 07/29 01:51
35F:→ b0920075: fd 上限後开下一个就会失败,但 fd 只跟 process 有关 07/29 01:51
36F:→ b0920075: 吧,跟系统上跑的其他 process 应该是独立不相干的? 07/29 01:51
37F:→ jacky1989: 建议保持好习惯,有fopen 就有fclose 07/30 00:37
38F:推 ibmibmibm: 如果你在写飞弹的程式,那可能发射两分钟後就有终极的 08/10 09:46
39F:→ ibmibmibm: 全系统资源回收,那就不用关了,不然还是都记得关吧 08/10 09:46
40F:推 youtuuube000: 问题是process很可能会长期跑啊..一直开着到时fd爆 08/12 14:43
41F:→ youtuuube000: 掉怎办 08/12 14:43
42F:推 ArdenCho: 关一关吧,养成一个好习惯 09/28 22:49







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP