如何查看一个进程打开的文件

本文介绍如何在Linux系统中通过lsof命令查看进程打开的文件,包括理解PCB与资源占用的关系,以及利用/proc目录进行查看的方法。重点讲解了普通文件、网络文件系统、设备文件等多种可作为文件打开的对象。
摘要由CSDN通过智能技术生成

今天突然看到一个问题,如何查看一个进程打开的文件?
我脑子里的第一个想法就是,肯定和pcb有关,于是就是看了操作系统课本。看到了这样一段话。

此外还需要为进程设置数据结构,用来描述进程的状态信息、本身的属性、对资源的占用及调度信息等,
称为进程控制块,简称PCB(Process Control Block)

对资源的占用,这不正是看打开文件的地方吗?后来发现主要有两种方法

  • 使用lsof命令
  • 进入/proc目录中查看

首先我们来明确一下在linux系统中,那些东西可以被当作文件打开。
1.普通的文件,
2.目录
3.网络文件系统的文件,
4.字符设备文件
5.(函数)共享库
6.管道,命名管道
7.符号链接
8.底层的socket字流,网络socket,unix域名socket
9.在linux里面,大部分的东西都是被当做文件的……还有其他很多

使用lsof命令

截屏20211210 下午12.36.59.png
可以通过

losf -p xxx

的方式来指定进程号,查看该进程打开的文件。

进入/proc目录中查看

首先我们进入proc目录
截屏20211210 下午12.39.40.png
可以看到很多的数字,这里的数字就是进程号,选择我们想看的进程,进入,并使用ls -l列出fd目录下的全部文件即可
截屏20211210 下午12.42.50.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值