Linux下两个进程可以同时打开同一个文件吗?返回的文件描述符一样吗?

一:结论

1.两个进程中分别产生生成两个独立的fd

2.两个进程可以任意对文件进行读写操作,操作系统并不保证写的原子性
3.进程可以通过系统调用对文件加锁,从而实现对文件内容的保护
4.
任何一个进程删除该文件时,另外一个进程不会立即出现读写失败

5.两个进程可以分别读取文件的不同部分而不会相互影响

6.一个进程对文件长度和内容的修改另外一个进程可以立即感知

二:文件描述符与打开文件的关系?

内核中,对应于每个进程都有一个文件描述符表,表示这个进程打开的所有文件。文件描述表中每一项都是一个指针,指向一个用 于描述打开的文件的数据块———file对象,file对象中描述了文件的打开模式,读写位置等重要信息,当进程打开一个文件时,内核就会创建一个新的file对象。需要注意的是,file对象不是专属于某个进程的,不同进程的文件描述符表中的指针可以指向相同的file对象,从而共享这个打开的文件。file对象有引用计数,记录了引用这个对象的文件描述符个数,只有当引用计数为0时,内核才销毁file对象,因此某个进程关闭文件,不影响与之共享同一个file对象的进程。

linux下两个进程可以同时打开同一个文件吗?返回的文件描述符一样吗?相关推荐

  1. Linux下两个进程可以同时打开同一个文件,这时如下描述错误的是:

    D,一般删除都是文件索引,如果两个文件同时打开同一个文件,一个线程执行删除操作,只要另一个线程不退出,就可以继续对该文件进行操作,一旦退出才找不到该文件的索引节点而报错.

  2. Linux下多个进程可以同时打开同一个文件吗?文件描述符与打开文件的关系?

    一:结论 1.两个进程中分别产生生成两个独立的fd 2.两个进程可以任意对文件进行读写操作,操作系统并不保证写的原子性 3.进程可以通过系统调用对文件加锁,从而实现对文件内容的保护 4.任何一个进程删 ...

  3. linux查看进程grep工作组,Linux下查看一个进程打开了哪...-linux 如何找到进程的工作目录...-使用 grep 恢复误删的文本文件_169IT.COM...

    Linux下查看一个进程打开了哪些文件的命令示例,供大家学习参考. 查看进程14755(httpd)打开了哪些文件: 代码如下: localhost:~# lsof -p 14755 COMMAND ...

  4. Linux下查看某个进程打开的文件数-losf工具常用参数介绍

    Linux下查看某个进程打开的文件数-losf工具常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux操作系统中,一切皆文件.通过文件不仅仅可以访问常规数据,还 ...

  5. linux查看某进程的连接,linux下查看指定进程的所有连接信息(转)

    定位某个进程的网络故障时经常需要用到的一个功能就是查找所有连接的信息.通常查找某个端口的连接信息使用 ss 或者 netstat 可以轻松拿到,如果是主动与别的机器建立的连接信息则可以通过 lsof ...

  6. linux下杀死全部进程,linux下批量杀死进程

    ps aux|grep python|grep -v grep|cut -c 9-15|xargs kill -15 管道符"|"用来隔开两个命令,管道符左边命令的输出会作为管道符 ...

  7. linux下的僵尸进程处理SIGCHLD信号

    什么是僵尸进程? 首先内核会释放终止进程(调用了exit系统调用)所使用的所有存储区,关闭所有打开的文件等,但内核为每一个终止子进程保存了一定量的信息.这些信息至少包括进程ID,进程的终止状态,以及该 ...

  8. Linux下ps查找进程用kill终止命令

    Linux下ps查找进程用kill终止命令<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:offic ...

  9. kill掉多个进程linux中的sudo,linux下批量kill进程的方法

    --kill某个用户下的所有进程(用户为test) --pkill # pkill -u test --killall # killall -u test --ps # ps -ef | grep t ...

最新文章

  1. 切换不了摄像头 高拍仪_手机摄像头模组支架保护膜的变革之路
  2. 小米算法题判断直线相交
  3. mysql 修改数据 where_MySQL笔记之修改数据的解决方法
  4. 38Exchange 2010升级到Exchange 2013-安装第二台CAS2013
  5. scala case class 继承_数字硬件系统设计之一:Scala快速入门(2)
  6. opencv中Mat与IplImage,CVMat类型之间转换
  7. 路由器的工作原理_VRRP(虚拟路由器冗余协议)知识点梳理
  8. 在没有DOM操作的日子里,我是怎么熬过来的(终结篇)
  9. python greenlet背景介绍与实现机制
  10. Myeclipse项目内容没有报错但是项目上面却有红色叉叉
  11. html画圣诞树—动态效果展示【炫酷合集】
  12. ECCV 2020 best paper: RAFT算法解析
  13. python一对一辅导教程:PyGeM Tutorials 解析 1
  14. 选项不属于HTML语言特点,JavaScript选择题
  15. pytorch - GAN
  16. 2019Java 全栈工程师 进阶路线图!一定要收藏!
  17. -moz、-ms、-webkit, -o各什么意思
  18. C语言验证哥德巴赫猜想
  19. Java XML分析技术: StAX, SAX, DOM, DOM4j, JDOM
  20. 殆知阁古代文献藏书2.0版txt文本质量如何

热门文章

  1. 【OpenGL ES】 Android OpenGL ES -- 透视投影 和 正交投影
  2. 小程序加载本地图片路径问题
  3. Java的this、super和final关键字
  4. JQuery选择器大全
  5. innerHTML的确是好东西
  6. 硬核NeruIPS 2018最佳论文,一个神经了的常微分方程
  7. charles: 使用小结
  8. 深入理解模板模式及实际应用
  9. 改善程序代码质量的一些技巧
  10. 自定义圆环progressbar