内核中访问文件系统中的文件
Linux命令高级技巧使用lsof查看打开文件和进程

Linux命令高级技巧使用lsof查看打开文件和进程lsof(list open files)是Linux操作系统中一个功能强大的命令,用于查看当前系统中打开的文件和相关的进程信息。
在系统管理和故障排查等工作中,lsof是非常实用的工具。
本文将介绍lsof的常用参数和使用技巧。
一、查看打开的文件1. 查看所有打开的文件要查看系统中所有打开的文件,可以使用以下命令:```shelllsof```该命令将显示所有打开的文件的详细信息,包括文件名、进程ID、用户、文件类型等。
2. 查看某个进程打开的文件如果只想查看某个特定进程打开的文件,可以使用以下命令:```shelllsof -p <进程ID>```其中,`<进程ID>`需要替换为实际的进程ID。
3. 查看某个用户打开的文件要查看某个特定用户打开的文件,可以使用以下命令:```shelllsof -u <用户名>```其中,`<用户名>`需要替换为实际的用户名。
4. 查看某个目录下的打开文件要查看某个特定目录下的打开文件,可以使用以下命令:```shelllsof <目录路径>```其中,`<目录路径>`需要替换为实际的目录路径。
5. 查看某个类型的打开文件要查看某个特定类型的打开文件,可以使用以下命令:```shelllsof -t <文件类型>```其中,`<文件类型>`需要替换为实际的文件类型,如`txt`、`mp3`等。
二、查看进程信息除了查看打开的文件,lsof还可以用于查看系统中运行的进程信息。
1. 查看某个进程的详细信息要查看某个进程的详细信息,可以使用以下命令:```shelllsof -p <进程ID>```其中,`<进程ID>`需要替换为实际的进程ID。
2. 查看某个端口号相关的进程要查看某个特定端口号相关的进程,可以使用以下命令:```shelllsof -i :<端口号>```其中,`<端口号>`需要替换为实际的端口号。
Linux内核态文件读写相关函数API

Linux内核态⽂件读写相关函数API1、前⾔Linux系统中的⽂件系统由两层结构进⾏构建:第⼀层为虚拟⽂件系统(VFS),第⼆层则是各种不同的具体的⽂件系统。
VFS则是将各种具体的⽂件系统的公共部分抽取出来,从⽽形成⼀个抽象层,是Linux系统内核的⼀部分,它位于⽤户程序和具体的⽂件系统之间,对⽤户提供了标准的⽂件系统调⽤接⼝,对于具体的⽂件系统,通过⼀系列的对不同⽂件系统公⽤的函数指针来实际调⽤具体⽂件系统的函数,完成实际的各种差异操作。
对于⽤户,对⽂件的读写操作时,可以使⽤函数open()、read()、write()和close()等,当在Linux内核中,肯定是没有这些函数可以使⽤,这个时候,可以使⽤内核的⼀些函数filp_open()、vfs_read()、vfs_write()、和filp_close()等去完成⽂件的读写。
2、常⽤API接⼝接下来,简单介绍相关的内核API接⼝是如何使⽤的,对于filp_open()、filp_close()、vfs_read()、vfs_write()函数的声名在⽂件linux/fs.h中。
(1)⽂件打开filp_open函数原型如下:struct file *filp_open(const char *filename, int flags, umode_t mode);参数说明:filename:要打开或创建⽂件的字符串名称,包括路径部分;flags:⽂件的打开⽅式,该取值与open()函数类似,可以取O_CREATE、O_RDWR、O_RDONLY;mode:创建⽂件时使⽤该参数,设置⽂件的读写权限,其它情况可以设置为0。
返回值:⽂件打开成功返回正确的struct file *指针,失败返回错误的指针。
注意:函数filp_open()将返回struct file *结构指针,将会提供给后继的函数进⾏使⽤,需要使⽤IS_ERR()来校验指针的有效性。
Linux命令高级技巧使用lsof命令查看系统中打开的文件

Linux命令高级技巧使用lsof命令查看系统中打开的文件Linux操作系统是一种开源的系统,其强大的功能和灵活性受到了广泛的认可和应用。
而在Linux系统中,lsof命令是一个非常有用的工具,可以用来查看系统中当前打开的文件,其高级技巧也是我们应该掌握的。
本文将介绍如何使用lsof命令以及一些高级技巧来查看系统中打开的文件。
一、 lsof命令的基本使用lsof命令是“list open files”的缩写,通过该命令可以查看当前系统中打开的文件信息。
其基本格式为:```shelllsof [options]```其中,options是可选参数,可以根据需要选择合适的参数来获取所需的信息。
1. 查看指定进程的打开文件使用lsof命令可以查看指定进程的打开文件,只需在命令中加上进程号即可。
例如,要查看进程号为1234的进程打开的文件,可以使用以下命令:```shelllsof -p 1234```该命令将列出该进程打开的所有文件的详细信息,包括文件名、文件类型、文件描述符等。
2. 查看指定文件被哪些进程打开除了查看进程的打开文件,我们还可以通过lsof命令查看指定文件被哪些进程打开。
使用以下命令:```shelllsof /path/to/file```其中,"/path/to/file"是要查看的文件路径。
该命令将列出该文件被哪些进程打开的详细信息,包括进程号、进程名、文件描述符等。
3. 查看网络连接lsof命令还可以用来查看系统中的网络连接情况。
使用以下命令:```shelllsof -i```该命令将列出当前系统中所有的网络连接信息,包括连接的协议、本地地址、远程地址等。
二、 lsof命令的高级技巧除了基本的使用方法,lsof命令还有一些高级技巧可以帮助我们更好地使用它来查看系统中打开的文件。
1. 使用通配符查找文件如果要查看某个目录下的所有打开文件,我们可以使用通配符来简化命令。
arm版本linux系统的启动流程

arm版本linux系统的启动流程ARM架构是一种常见的处理器架构,被广泛应用于嵌入式设备和移动设备中。
在ARM版本的Linux系统中,启动流程是非常重要的,它决定了系统如何从开机到正常运行。
本文将详细介绍ARM版本Linux系统的启动流程。
一、引导加载程序(Bootloader)引导加载程序是系统启动的第一阶段,它位于系统的固化存储器中,比如ROM或Flash。
在ARM版本的Linux系统中,常用的引导加载程序有U-Boot和GRUB等。
引导加载程序的主要功能是加载内核镜像到内存中,并将控制权转交给内核。
二、内核初始化引导加载程序将内核镜像加载到内存后,控制权被转交给内核。
内核初始化是系统启动的第二阶段,它主要完成以下几个步骤:1. 设置异常向量表:ARM架构中,异常是指硬件产生的中断或故障,比如系统调用、中断请求等。
内核需要设置异常向量表,以便正确处理异常。
2. 初始化处理器:内核对处理器进行初始化,包括设置页表、启用缓存、初始化中断控制器等。
3. 启动第一个进程:内核创建第一个用户进程(一般是init进程),并将控制权转交给它。
init进程是系统中所有其他进程的父进程,负责系统的初始化工作。
三、设备树(Device Tree)设备树是ARM版本Linux系统中的一种机制,用于描述硬件设备的相关信息。
在内核初始化过程中,内核会解析设备树,并建立设备树对象,以便后续的设备驱动程序使用。
设备树描述了硬件设备的类型、地址、中断等信息,以及设备之间的连接关系。
它使得内核能够在运行时自动识别和配置硬件设备,大大提高了系统的可移植性和灵活性。
四、启动初始化(Init)启动初始化是系统启动的第三阶段,它是用户空间的第一个进程(init进程)接管系统控制权后的操作。
启动初始化主要完成以下几个任务:1. 挂载根文件系统:启动初始化会挂载根文件系统,使得用户可以访问文件系统中的文件和目录。
2. 加载系统服务:启动初始化会加载并启动系统服务,比如网络服务、日志服务、时间同步服务等。
windows XP系统内核文件分析(全)

这两天逛论坛, 无意中发现了这个帖子. 作者极尽所能的介绍了 Windows 系统文件的相关信息. 极有参考价值. 虽说, 这个不同于 nLite 的预先精简定制, 但是相信对于 nLite 精简效果不够满意的大有人在. 那么按照这个指南就能够令你的系统最优化.当然, 精简系统是要付出代价的. 不要贪得无厌, 免得系统坏了修不好啊.Windows XP个别 System32 文件System32 文件夹下个别要移除的文件我们就要删除另外600 个 system32 文件...我们要一次把它们全都解决掉.以下是我所删除的 System32 文件列表, 另外还有相关的批处理文件.我不会把自己用的批处理文件给别人的.我已经厌倦别人认为我的批处理文件就是最适合他们的. 其实并不是这么回事.这里有个很简单的例子能够说明原因.我在我用的批处理文件中定义了要删除winfax.dll (Microsoft 传真 API 支持 DLL), 因为我没有传真机. 你直接用我的批处理文件的话, 就会把你的系统中的传真相关文件删掉. 这样, 你的传真机无法正常工作的话. 你就会骂我.到底需要移除哪些 System32 文件, 这应该由你自己来决定. 我已经尽力把相关信息提供给你了, 这些应该可以帮助你决定应当删除哪些文件.如果你想创建你自己的批处理文件的话,请仔细查看相关移除信息, 我会把相应部分的批处理脚本贴上去的, 然后你可以将其粘贴到你自己的批处理文件中.我在我的批处理文件中添加了一个防止出现意外的功能...这些文件会被移动并会被保存下来 (没有直接将其删除...) 备份至 C:/backup.在这个backup 文件夹中有个名为"smart placement"的子文件夹. 其出现的顺序与 XP 中的顺序相同. 首先你会看到 WINDOWS 文件夹. 在 WINDOWS 文件夹中你可以看到 system32 文件夹.我创建这个所谓的‖smart placement‖就是为了让你明白相关备份文件的来源. 如你所见, 这些批处理文件也可用于其它文件夹中的文件. 反正, Backup 文件夹中的结构与 XP 的相同.请确保在你使用任何注册表清理工具之前, 应当先把 Backup 文件夹中的文件临时删掉...注册表清理工具可能会把注册表中的路径指向 backup 文件夹中的相关路径.将用得到的部分脚本复制粘贴到记事本中. 然后将其另存.代码:________________________________________IF NOT EXIST "c:/backup/WINDOWS/system32" md c:/backup/WINDOWS/system32MOVE c:/WINDOWS/system32/6to4svc.dll c:/backup/WINDOWS/system32/MOVE c:/WINDOWS/system32/aaaamon.dll c:/backup/WINDOWS/system32/MOVE c:/WINDOWS/system32/acledit.dll c:/backup/WINDOWS/system32/MOVE c:/WINDOWS/system32/admparse.dll c:/backup/WINDOWS/system32/________________________________________C:/WINDOWS/system32:12520437.cpx ...代码页转换表.12520850.cpx ... 代码页转换表.6to4svc.dll ....在 IP4网络上提供IPv6 连接的服务aaaamon.dll ....Aaaa Monitor Dllacledit.dll ....访问控制列表编辑器ac3filter.cpl ..ac3filter 控制面板扩展属于我所安装用于看电影的 AC3Filter 编解码器.ahui.exe .......应用程序兼容用户界面ALSNDMGR.CPL ...Realtek AC97 音频控制面板我用 RTLCPL.EXE (Realtek 音频控制面板) 作为代替.amcompat.tlb ...ansi.sys .......apcups.dll .....APC 智能提供程序APPEND.EXE .....(Append). 允许应用程序在当前文件夹中打开指定目录中的数据文件. 此工具源于 MS-DOS 5.0.asctrls.ocx ....Active Setup 控件A T.EXE .........(AT). 用于设置在指定时间和日期执行任务. 需要运行计划任务服务.atkctrs.dll ....Windows NT AppleTalk 性能计数器 dllATMADM.EXE .....(A TM). ATM 呼叫管理器.auditusr.exe ... 设置每用户审核策略atmfd.dll ......Windows NT OpenType/Type 1 字体驱动atmlib.dll .....Windows NT OpenType/Type 1 API 库.atmpvcno.dll ...Atm Epvc Install DLLatrace.dll .....Async Trace DLLATTRIB.EXE .....(文件属性). 显示或更改文件属性 (只读, 存档, 隐藏, 或系统).AUTOCONV.EXE ...(自动转换). 用于将 FAT 分区格式转为 NTFS.autodisc.dll ...Windows AutoDiscovery API , 自动收取邮件AUTOFMT.EXE ...(自动格式化). 用于转换文件系统的工具.AUTOLFN.EXE ....长文件名转换工具. 用于 DOS模式下. 能够自动将长文件名转换为8.3 格式.-------------------------------------------------------batt.dll .......电池类安装程序如果你使用笔记本的话, 那么设备管理器会需要这个文件来访问你的电池属性.-------------------------------------------------------bidispl.dll ....Bidispl DLLbios1.rom ......bios4.rom ......bitsprx2.dll ...后台智能传输服务代理bitsprx3.dll ... 后台智能传输服务 2.0 代理blastcln.exe ...Blaster/Nachi 移除工具BOOTOK.EXE .....(启动确认). 在一次成功地登录系统之后, ―上次正确的配置‖会用它保存配置参数.BOOTVRFY.EXE ...(启动验证). ―上次正确的配置‖会用它验证一个引导选择.browsewm.dll ...BrowseWM Playerbthci.dll ......蓝牙类别安装程序bthprops.cpl ...蓝牙控制面板小程序 (无线公司)bthserv.dll ....蓝牙支持服务btpanui.dll ....蓝牙 PAN 用户界面-------------------------------------------------------capesnpn.dll ...Microsoft 证书模板管理扩展ccfgnt.dll .....Internet 配置库certmgr.dll ....证书管理工具certmgr.msc .... <-- 证书管理控制台.cdosys.dll .....Microsoft CDO for Windows Librarycdfview.dll ....频道定义文件文件查看器cewmdm.dll .....Windows CE WMDM 服务提供程序CHARMAP.EXE ....(字符映射表). 用于显示某个字体所能显示的所有字符. -------------------------------------------------------以下文件没有用批处理文件删除. 需要手动删除它们:cdplayer.exe.manifestlogonui.exe.manifestncpa.cpl.manifestnwc.cpl.manifestsapi.cpl.manifestWindowsLogon.manifest-------------------------------------------------------ChCfg.exe ......?? (我拿它没办法.) .......用于更换系统代码页的工具cmos.ram .......CHKNTFS.EXE ....(NTFS 驱动器检查工具). 用于检查 NTFS 分区的完整性.ckcnv.exe ......Cookie 转换工具cnvfat.dll .....FAT 文件系统转换工具 DLLcomcat.dll .....Microsoft C 运行时库文件comctl32.ocx ...Windows 通用控件 ActiveX 控件 DLLCOMP.EXE .......(比较). 用于比较两个文件之间的差别.compatUI.dll patUI Modulecompobj.dll ....OLE 2.1 16/32 互用性-------------------------------------------------------compstui.dll ...通用属性表用户界面DLL没有这个文件的话, 你可能无法访问打印机属性或是打印机参数.-------------------------------------------------------CONFIG.TMP .....confmsp.dll ....Microsoft IP 会议媒体服务提供程序CONIME.EXE .....(输入法控制台). 这个输入法控制台用于转换字符.console.dll ....控制面板控制台小程序control.exe ....Windows 控制面板 (这个不是实际上的控制面板.)CONVERT.EXE ....(转换). 用于将分区格式从 FAT 转为 NTFS 以及从 NTFSv4 转为 NTFSv5.corpol.dll .....Microsoft COM 运行时执行引擎country.sys ....cryptdlg.dll ...Microsoft 通用证书对话框cryptext.dll ...加密外壳扩展cryptnet.dll ...加密网络相关 APICSCRIPT.EXE ....(基于命令行的脚本宿主). 能让你通过命令行运行 VBScript 和 JScript 脚本.ctfmon.exe ....CTF 加载器 (在你安装手写识别, 语音识别, 输入法编辑器之后, 就会在任务栏上显示一个语言栏. 还有, 如果你添加了第二种语言或是键盘布局, 也会导致显示语言栏的.)ctl3d32.dll ....Ctl3D 3D Windows 控件ctl3dv2.dll ....Ctl3D 3D Windows NT(WOW) 控件Dcache.bin .....dbgeng.dll .....符号调试引擎DEBUG.EXE ......(调试程序). 命令行下的调试工具.DEFRAG.EXE .....(磁盘碎片整理). 用于整理磁盘碎片的命令行工具.desktop.ini ....DFRGFAT.EXE ....(FAT 碎片整理工具). 用于整理 FAT 分区上的磁盘碎片.dgnet.dll ......Dgnet Moduledgrpsetu.dll ...Digi RealPort? 驱动升级dgsetup.dll ....DGSETUP DLLdhcpmon.dll ....DHCP Monitor Dlldhcpsapi.dll ...DHCP Server API Stub DLLDIANTZ.EXE .....(Cab 打包程序). 用于将文件打包为 .cab 文件.digest.dll .....Digest SSPI 认证包DLLHOST.EXE ....(COM+ 服务器进程). COM+ 进程管理器.DLLHST3G.EXE ...(COM 代替品). 一个 COM+ 进程组件.dmconfig.dll ...逻辑磁盘管理器配置库DOSKEY.EXE .....(DOS 键盘). MS-DOS 5.0 键盘输入历史记录器,能提供宏.DOSX.EXE .......(DOS 扩展器). 一个 DOS 虚拟机 (VDM), 提供标准模式.DRW ATSON.EXE ...(Dr. Watson).16位的程序错误监测和记录工具.DRWTSN32.EXE ...(Dr. Watson 32). 32位的程序错误监测和记录工具.dsauth.dll .....用于服务的DS 认证 .......edit.hlp .......EDLIN.EXE ......(编辑行). 基于 DOS 的编辑器.emptyregdb.dat ..encdec.dll .....XDSCodec & Encypter/Decrypter 标识滤镜EqnClass.Dll ...Equinox 多端口串行协同安装程序esent97.dll ....Microsoft(R) Windows NT(TM) 服务器数据库存储引擎esentprf.dll ... 服务器数据库存储性能库esentprf.hxx ...esentprf.ini ...esentutl.exe ... 服务器数据库存储工具EUDCEDIT.EXE ...(私有字符编辑器). 一个造字程序, 可让你创建大约6400 个私有字符. EXE2BIN.EXE ....(Exe to Bin). 基于 DOS, 用于将 .exe 文件转为.bin 文件.EXPAND.EXE .....(Expand). 用于展开 Cab 压缩包中的某些文件.expsrv.dll .....Visual Basic 运行时文件extmgr.dll .....扩展管理器EXTRAC32.EXE ...(CAB 文件提取工具). 用于解压缩 Cab 压缩包exts.dll .......调试器扩展FASTOPEN.EXE ...(快速打开). 一个 DOS 工具, 用于改善系统性能, 加速访问经常用到的文件.fc.exe .........文件比较工具fe客户端.dll ...Windows NT 文件加密客户端接口find.exe .......查找字符串 (Grep) 的工具findstr.exe .... 查找字符串 (QGrep) 的工具FIXMAPI.EXE ....(MAPI 修复工具). 探测并解决 (MAPI) 文件出现的问题.fldrclnr.dll ...桌面清理向导fltlib.dll .....筛选库fltMc.exe ......筛选管理器控制程序fontsub.dll ....字体设置DLLFORCEDOS.EXE ...(强制 DOS). 强制在 Windows XP 下将包含 OS/2 和 DOS 代码的程序运行在 DOS 模式下. .....Disk Format Utility格式化命令fsmgmt.msc .....Microsoft 通用控制台文档 (共享文件夹)fsquirt.exe ....(属于蓝牙)fsusd.dll ......摄像头设备 DLLFSUTIL.EXE .....(FSUtil). 一个卷管理工具. 重分析点管理和稀疏文件控制FTP.EXE ........(FTP). 命令行模式下的 FTP 工具.ftsrch.dll .....Microsoft? 文本搜索g711codc.ax ....Intel G711 CODECgcdef.dll ......游戏控制器的默认表GDI.EXE ........(物理设备接口). 一个核心系统组件, 可以提供 Win16 图形设备接口API l 库, 以实现向后兼容.glmf32.dll .....OpenGL Metafiling DLLgpkcsp.dll .....Gemplus 加密服务提供程序gpkrsrc.dll ....Gemplus 加密服务提供程序资源文件 ...代码页工具 ...h323.tsp .......h323msp.dll ....Microsoft H.323 媒体服务提供程序hccoin.dll B 协同安装程序HELP.EXE .......(帮助). 显示 Windows XP 命令的基本常规帮助信息.hidphone.tsp ...hlink.dll ......Microsoft 超链接库hnetmon.dll ....家庭网络监视 DLLhnetwiz.dll ....网络安装向导homepage.inf ...hotplug.dll ....用于安全移除硬件, 比如, U 盘HSFCISP2.dll ...HSF 协同安装程序httpapi.dll ....HTTP 协议堆栈 APIiccvid.dll .....(Cinepak? Codec) 用于显示’’Cinepak’’格式的媒体文件. (非常古老的 A VI 编解码格式.)IE4UINIT.EXE ...(IE 安装工具). IE 5.0 每用户安装工具.iedkcs32.dll ...Microsoft Internet Explorer 定制 DLLieencode.dll ...Microsoft 字符编码iernonce.dll ...带用户界面的扩展 RunOnce 处理库iesetup.dll ....IOD 版本映射ieuinit.inf ....IEXPRESS.EXE ...(自解压和自安装创建程序). 用于创建自解压包或是自安装程序包.ifmon.dll ......IF Monitor DLLigmpagnt.dll ...Microsoft IGMP subagentils.dll ........用户位置服务组件模块imeshare.dll ...Microsoft Office IME 共享属性库inetmib1.dll ...Microsoft MIB-II subagentinitpki.dll ....Microsoft 受信赖的安装和设置input.dll ......(文本输入 DLL). 语言和区域设置需要这个文件来显示相关对话框inseng.dll .....(安装引擎). Active Setup 安装引擎, 允许打开或执行 cab 文件. 用于控制安装. instcat.sql ....用于安装编录intl.cpl .......区域和语言设置iologmsg.dll ...IO 日志 DLLipconf.tsp .....iprop.dll ......OLE 属性集ir32_32.dll ....ir41_32.ax .....Intel Indeo? Video 4.5ir41_qc.dll ....Intel Indeo? 视频快速压缩编码器 (文件版本: 4.30.62.2)ir41_qcx.dll ...Intel Indeo?视频快速压缩编码器 (文件版本: 4.30.62.2)ir50_32.dll ....Intel Indeo? video 5.10 (文件版本: 5.2562.15.55)ir50_qc.dll ....Intel Indeo? 5.10视频快速压缩编码器(文件版本: 5.0.63.48 )ir50_qcx.dll ...Intel Indeo? 5.10 视频快速压缩编码器 (文件版本: 5.0.63.48 )irclass.dll ....Infrared Class 协同安装程序isrdbg32.dll ...ISR 32 位调试引擎ivfsrc.ax ......Intel Indeo? 视频IVF 源滤镜 5.10itircl.dll .....Microsoft? InfoTech IR Local DLLitss.dll .......Microsoft? InfoTech 存储系统库文件iyuv_32.dll ....Intel Indeo(R) Video YUV Codec (文件版本: 5.1.2600.2180)jet500.dll .....JET 引擎 DLLjgaw400.dll ....JG 音频接口 DLL (AOL 文件)jgdw400.dll ....JG ART DLL (AOL 文件)jgmd400.dll ....JG MIDI Player DLL (AOL 文件)jgpl400.dll ....JG ART Player DLL (AOL 文件)jgsd400.dll ....JG ART DLL (AOL 文件)jgsh400.dll ....JG 幻灯片播放器 DLL (AOL 文件)jobexec.dll ....Active Setup 任务执行程序joy.cpl ........游戏控制器控制面板小程序jsproxy.dll ....JScript 代理自动配置kd1394.dll .....核心调试程序IEEE 1394 HW Extension DLL .......key01.sys ......keyboard.sys ...keymgr.dll .....存储的用户名和密码kmddsp.tsp .....KRNL386.EXE ....(Kernel 386). 包含了用于 Win16 增强模式下的核心Kernel 例程.l3codecp.acm ...MPEG Audio Layer-3 Codec for MSACM (系统默认的 MP3 解码器)LABEL.EXE ......(卷标). 用于显示, 编辑, 或更改驱动器的卷标.lanman.drv .....laprxy.dll .....Windows Media Logagent Proxylicmgr10.dll ...ActiveX 许可管理器LIGHTS.EXE .....(Lights). 在 Win 9x 下通过监视 COM 端口来提供对于调制解调器状态的设置.LNKSTUB.EXE ....(Win95-Winnt 迁移工具). 用于把 Windows 95 升级至 Windows. ....localui.dll ....本地监视用户界面 DLLLOCATOR.EXE ....(Locator). 向 Windows XP 的环境添加对于 Remote Procedure Calls (RPCs) 的支持.loghours.dll ...计划对话框lpk.dll ........会话注销工具lusrmgr.msc ....lusrmgr.msc = 本地用户和用户组. 无法在 Home 版 XP上使用这个管理工具. 用于管理电脑上的用户帐号.MAKECAB.EXE ....(Cab 文件创建工具). 用于创建 .cab 压缩包文件.mapi32.dll .....Extended MAPI 1.0 for Windows NTmcastmib.dll ...Microsoft 多播子代理mcd32.dll ......OpenGL MCD 客户端 DLLmcdsrv32.dll ...MCD 服务器mchgrcoi.dll ...中级更改器协同安装程序mciavi32.dll ... Windows MCI 视频驱动mciole16.dll ...MCIOLE16 - OLE Handler DLL for MCI Objectsmciole32.dll ...MCI OLE DLLmciwave.dll ....MCI 波形音频驱动mdhcp.dll ......Microsoft MDHCP 客户端 COM 接口mdwmdmsp.dll ...用于 MDM 驱动的WMDM 服务提供程序驱动MEM.EXE ........(Memory). 一个用于显示当前内存状态的命令行工具.mf3216.dll .....32 位至 16 位元文件的转换 DLLmfc40.dll ......MFCDLL 共享库–零售版mfc40u.dll .....MFCDLL 共享库–零售版mfcsubs.dll ....MSCTFIME.IME ...mgmtapi.dll ....Microsoft SNMP 管理器 API (使用 WinSNMP)mib.bin ........MIGPWD.EXE .....(迁移 dll). 用于 Windows 95 至 Windows NT 的迁移工具.miglibnt.dll ...NT 迁移支持 dllmlang.dat ......mll_hp.dll .....HP 媒体卷标库mll_mtf.dll ....MTF (Microsoft 磁带格式) 媒体卷标库mll_qic.dll ....QIC113媒体卷标库mmdrv.dll ......多媒体核心支持驱动mobsync.dll ....Microsoft 同步管理器MOBSYNC.EXE ....(脱机工作同步程序). 同步脱机网站. .......DOS 命令modex.dll ......ModeX 显示驱动 .......Dos 命令moricons.dll ...Windows NT 安装图标资源库MOUNTVOL.EXE ...(卷加载器). 创建, 列出以及修改你的存储卷加载点. mpg4ds32.ax ....(文件版本: 8.0.0.4487). Microsoft MPEG-4 视频解码器mplay32.exe ....Windows Media Player 5.1 (非常古老的媒体播放器.) MRINFO.EXE .....(多播信息). 用于查询多播路由器接口的命令行工具.msacm.dll ......Microsoft 音频压缩管理器msaatext.dll ... Active Accessibility 文本支持msadds32.ax ....(文件版本: 8.0.0.4487). Windows Media 音频解码器msafd.dll ......Microsoft Windows Sockets 2.0 服务提供程序msapsspc.dll ...32 位平台下的 DPA 客户端msaudite.dll ...安全审核事件 DLLmscat32.dll ....MSCAT32 Forwarder DLLMSCTFP.dll .....MSCTFP Server DLLmsdadiag.dll ...Microsoft Data Access –内建诊断msdart.dll .....Microsoft Data Access - OLE DB 例行运行时msdatsrc.tlb ...msdtcprf.ini ...msencode.dll ...Microsoft 字符编码器msieftp.dll ....Microsoft Internet Explorer FTP 文件夹外壳扩展msimsg.dll .....Windows? Installer 国际消息mslbui.dll .....msnsspc.dll ....MSN Internet Accessmsobjs.dll .....系统对象审核名称MsPMSNSv.dll ...Microsoft 媒体设备服务提供程序msr2c.dll ......Microsoft Forms DLLmsr2cenu.dll ...Microsoft Forms DLLmsratelc.dll ...Internet 分级和本地用户管理DLLmsrating.dll ...Internet 分级和本地用户管理DLLmsrclr40.dll ...Microsoft Jet公文包调解程序msrd2x40.dll ...Microsoft (R) Red ISAMmsrd3x40.dll ...Microsoft (R) Red ISAMmsrecr40.dll ...Microsoft Jet公文包调解程序资源库msrepl40.dll ...Microsoft 复制库msrle32.dll ....Microsoft RLE 压缩器msscds32.ax ....(文件版本: 8.0.0.4487). Microsoft 屏幕视频解压器msscript.ocx ...Microsoft (r) 脚本控件mssign32.dll ...Microsoft 受信赖签证 APIsmssip32.dll ....MSSIP32 Forwarder DLLmstime.dll .....Microsoft (R) 用于 HTML 的定时交互多媒体扩展msswch.dll .....(屏幕键盘). 用于 msswchx.exe.msswchx.exe ....msswchx (属于屏幕键盘.)msutb.dll ......MSUTB 服务器 DLL-------------------------------------------------------msvbvm50.dll ...Visual Basic 虚拟机 (文件版本: 5.2.82.44)这是个老版本的 VB 虚拟机. msvbvm60.dll (也是 VB 虚拟机)文件版本: 6.0.96.90----------------------------------------------msvcirt.dll ....Windows NT IOStreams DLLmsvcp50.dll ....Microsoft (R) C++ 运行时库文件msvcrt20.dll ...Microsoft? C运行时库文件msvcrt40.dll ...VC 4.x CRT DLL (向后兼容 msvcrt.dll)msvideo.dll ....Microsoft Video for Windows DLLmsxml.dll ......XML OM for Win32msxml2.dll .....XML OM for Win32msxml2r.dll ....XML2 资源文件msxmlr.dll .....XML 资源文件msyuv.dll ......Microsoft UYVY 视频解压器mtxoci.dll .....对于Oracle 的 Microsoft 数据库支持 DLLmydocs.dll .....我的文档文件夹用户界面ncxpnt.dll ork (不是 Network) 安装向导支持 DLLndptsp.tsp .....NET.EXE ........(Network). 用于管理, 配置和查看与网络相关的信息, 例如 net use, net print, net user, 等等.net.hlp ........NET1.EXE .......(Network). 与 NET.EXE 的功能相同.netapi.dll .....Microsoft 网络动态链接库neth.dll .......网络帮助消息 DLLnetplwiz.dll ...映射网络驱动器向导netsetup.cpl ...网络安装向导控制面板小程序NETSETUP.EXE ...(网络安装向导). 通过软盘帮你配置电脑网络.netui0.dll .....NT LM UI Common Code - GUI Classes (文件版本: 5.1.2600.2180)netui1.dll .....NT LM UI Common Code - GUI Classes (文件版本: 5.1.2600.2180)netui2.dll .....NT LM UI Common Code - GUI Classes (文件版本: 5.1.2600.0) <-- 版本要比 netui1.dll 老?netrap.dll .....网罗远程管理协议DLL所有的 "noise", "wbcache" 和 "wbdbase" 文件 (不同语言下的文件) 都可被删除.(它们大都是索引服务用到的文件, 可通过 nLite 删除)(下列文件列在了注册表中的这个位置:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ContentIndex/Language)noise.chs <<简体中文noise.cht <<繁体中文noise.datnoise.deu <<...注意: ...DEU = 这是德国的noise.engnoise.enu <<英文noise.esn < noise.fra < noise.ita < noise.nld < noise.sve < noise.thawbcache.deuwbcache.enu <<英文wbcache.esn < wbcache.fra < wbcache.ita < wbcache.nld < wbcache.sve <wbdbase.deuwbdbase.enu <<英文wbdbase.esn < wbdbase.fra < wbdbase.ita < wbdbase.nld < wbdbase.sve <-------------------------------------------------------npptools.dll ...NPP 工具助手 DLLnscompat.tlb ...NSLOOKUP.EXE ...(域名服务器查寻). 用于显示 DNS 服务器的诊断和统计信息. ntlsapi.dll ....Microsoft? 许可服务器接口 DLLntdos404.sys ...ntdos411.sys ...ntdos412.sys ...ntdos804.sys ...ntimage.gif ....ntio404.sys ....ntio411.sys ....ntio412.sys ....ntio804.sys ....ntlanman.dll ...Microsoft? 局域网管理器ntlanui.dll ....ntlanui2.dll ...网络对象外壳用户界面NTSD.EXE .......(符号调试器). 系统出问题时, 这个疑难解答工具就会详细列出系统状态.ntsdexts.dll ... Windows 2000 下的符号调试工具nwprovau.dll ...用于 NetWare 提供程序和认证的客户端服务NTVDM.EXE ......(NT DOS 虚拟机). 提供用于 DOS 程序和Windows-on-Windows (WOW—支持 Win16) 的虚拟机.ntvdmd.dll .....NTVDMD.DLLoakley.dll .....Oakley 键盘管理器objsel.dll .....对象挑选对话框occache.dll ....对象控件查看器OSUNINST.EXE ....(卸载工具). 用于卸载Windows XP, 并将其还原到升级前使用的Windows 操作系统. 可在安全模式下运行于命令行模式.-------------------------------------------------------oembios.bin ....oembios.dat ....oembios.sig ....删掉 oembios.sig 的话, 可能会导致系统栏提示 "还剩下X 天用于激活 Windows". 这个可能会发生在 OEM 版 Windows 中. 如果出现了这种情况, 请将其放回.-------------------------------------------------------ole2.dll .......OLE 2.1 16/32相互操作库ole2disp.dll ...OLE 2.1 16/32相互操作库ole2nls.dll ....OLE 2.1 16/32相互操作库oleprn.dll .....Oleprn DLLp2p.dll ........点对点群p2pgasvc.dll ... 点对点群认证服务p2pgraph.dll ... 点对点图形p2pnetsh.dll ... 点对点NetSh 助手p2psvc.dll ..... 点对点服务PACKAGER.EXE ...(Object Packager). 用于在文档中创建嵌入数据的图标链接.panmap.dll .....PANOSE(tm) 字体映射器paqsp.dll ......PaqSP Modulepautoenr.dll ...自动注册 DLLpcl.sep ........PENTNT.EXE .....(NT Pentium 测试工具). 一个用于检测你的系统是否有Pentium 浮点运算错误的命令行工具. (我还把在―性能‖中的快捷方式删掉了).pifmgr.dll .....Windows NT PIF 管理器图标资源库pjlmon.dll .....PJL 语言监视器plustab.dll ....效果控制面板扩展pmspl.dll ......Microsoft 局域网管理器 2.1 网络动态polstore.dll …策略存储 dllpowercfg.exe ...电源设置命令行工具pnrpnsp.dll ....PNRP 命名空间提供程序proctexe.ocx ...Intel 程序纹理prodspec.ini ...PROGMAN.EXE ....(程序管理器). 可用于替换 Windows XP 资源管理器的外壳. 它的主界面基于 Windows 3.x, Windows for Workgroups, 和 Windows NT 3.51.pschdcnt.h .....pschdprf.dll ...Microsoft? Windows(TM) PSched 性能监视器pschdprf.ini ...pscript.sep ....psnppagn.dll ... NPPAgent对象的 DCOM 代理pubprn.vbs .....proquota.exe ...ProQuota 能让你设置一个用户配置文件的最大大小.PROXYCFG.EXE ...(代理配置工具). 一个用于查看和更改你当前代理设置的命令行工具.qmgrprxy.dll ...后台智能传输服务代理qosname.dll ....Microsoft Windows GetQosByName 服务提供程序query.dll ......目录索引工具 DLLrdpdd.dll ......RDP 显示驱动RECOVER.EXE ....(还原). 一个用于从有问题的驱动器中还原可读数据的命令行工具.REDIR.EXE ......(Redirector).Win16 网络重定向工具.remotesp.tsp...REG.EXE ........(注册表控制台). 一个用于查询和修改注册表的命令行工具.REGEDT32.EXE ...(注册表编辑器). 一个 32 位的注册表工具, 可用于设置注册表中相关项值的安全权限. 在 Windows XP 中, 原本带有更多功能的 regedt32.exe 已被合并regedit.exe 中了. Regedt32.exe 现在只不过相当于一个快捷方式. 如果你运行 regedt32.exe, 那么系统就会自动启动 regedit.exeregsvc.dll .....远程注册表服务REGWIZ.EXE .....(注册向导). 令注册 XP 的过程自动化.regwizc.dll .... 注册向导的相关模块rend.dll .......Microsoft 集合控件REPLACE.EXE ....(Replace). 用于替换文件的命令行工具.rnr20.dll ......Windows Socket2 命名空间 DLLroutetab.dll ...Microsoft 路由表 DLLrpcns4.dll .....Remote Procedure Call 命名服务客户端rsmps.dll ......RSM 代理存根rsaci.rat ...... <-- 属于 msrating.dll. 你可在以下位置查看分级选项: Internet 选项 -> 内容 -> 分级审查 -> 启用RTCSHARE.EXE ...(RTC 程序共享). 实时时钟组件.rtipxmib.dll ...Microsoft Router IPX MIB subagentRUNAS.EXE ......(运行方式). 这个工具可用一个新用户名和密码执行一个进程. 一般, 可用来在低权限用户登录的系统上以高权限的管理员身份来运行一个程序.safrdm.dll .....Microsoft 帮助中心桌面管理器safrslv.dll ....Microsoft 帮助中心会话处理程序SA VEDUMP.EXE ...(转储). 当系统出现 STOP 错误时, 可用于将内存中的内容转储为文件.sbe.dll ........DirectShow 流缓冲滤镜sbeio.dll ...... 流缓冲输入输出 DLLSC.EXE .........( Windows NT 服务管理). 一个服务管理工具.scrobj.dll .....Windows (r) 脚本组件运行时scrrun.dll .....Microsoft (r) 脚本运行时SDBINST.EXE ....(Installer). AppFix 和 AppHelp 安装程序.sendcmsg.dll ....发送控制台消息sdhcinst.dll ...Secure Digital Host 控制器类别控制器sdpblb.dll .....Microsoft Sdpblbsecupd.sig .....security.dll ...安全支持提供程序接口senscfg.dll ....SENS 安装设置工具serialui.dll ...串行端口属性页面setup.bmp ......SETUP.EXE ......(Setup). Windows 安装程序setupdll.dll ...Windows 2000 安装 DLLSETVER.EXE .....(设置版本). 用于定义报告给某个应用程序关于 DOS 的版本.sfc.exe ........(Windows 2000 系统文件检查工具). 用于验证 XP 的文件是否存在以及是否正确.sfc_os.dll ...(Windows 文件保护). 用于保护 Windows 的系统文件.sfmapi.dll .....Windows NT Macintosh 文件服务客户端SHARE.EXE ......(Share). 能让两个程序同时使用一个文件的 DOS 工具.shellstyle.dll ..Windows 外壳样式资源DllSHMGRATE.EXE ... Windows XP 用户数据转移工具.SHRPUBW.EXE ....(共享文件夹创建工具). 用于在 Windows XP 系统上创建共享文件夹.shscrap.dll ....外壳碎片对象句柄SHUTDOWN.EXE ...(远程关机工具). 允许关闭或重启本地或远程电脑.sigtab.dll .....文件完整性设置SIGVERIF.EXE ...(文件签名验证工具). 验证所选文件是否经过认证.simpdata.tlb ....sisbkup.dll ....单实例存储备份支持功能skdll.dll ......序列号SKEYS.EXE ......(序列号). 一个可提供支持序列号功能的系统服务.slayerxp.dll ...‖兼容性‖选项卡外壳扩展DLLsmbinst.exe ....系统管理 BIOS 驱动安装程序softpub.dll ....Softpub Forwarder DLLSORT.EXE .......(Sort). 用于整理键盘输入并将结果写入一个文件或是显示在屏幕上.spmsg.dll ......Service Pack 消息spnike.dll .....用于 Nike 设备的 MDM 设备接口spnpinst.exe ...点对点定制安装SPRESTRT.EXE ...重启时还原注册表sprio600.dll ... Rio 600 的 MDM 设备接口sprio800.dll ... Rio 800 的 MDM 设备接口spxcoins.dll ...Specialix MPS NT 升级协同安装程序srvsvc.dll .....服务器服务 DLLsti_ci.dll .....静止图像类别安装程序sti.dll ........ 静止图像设备客户端 DLLstimon.exe ..... 静止图像设备监视器storage.dll ....OLE 2.1 16/32 相互操作库strmfilt.dll ...流滤镜库SUBST.EXE ......(虚拟). 可将一个路径虚拟为一个分区.svcpack.dll ....Windows 2000 Service Pack 安装程序SYNCAPP.EXE ....(同步). 公文包用于同步所含文件的工具.synceng.dll ....Windows 公文包引擎syncui.dll .....Windows 公文包资源文件SYSEDIT.EXE .....(系统编辑器). 一个用于打开编辑 system.ini, win.ini, config.sys, 和 autoexec.bat 的编辑器.sysinv.dll .....Windows 系统清单SYSKEY.EXE .....(Windows XP 帐户数据库管理器). 用于设置Windows XP 帐户数据库的安全特性.sysmon.ocx .....系统监视控件sysprint.sep ...sysprtj.sep ....SYSTRAY.EXE ....(系统栏). 系统栏提供程序. 它能控制任务栏和系统栏. 但是, 没它的话, 也没有什么不正常的地方.t2embed.dll ....t2embedtaskman.exe ....任务管理器 (不是平时使用的那个. 平时那个是: "taskmgr.exe")tdc.ocx ........TDC ActiveX 控件TELNET.EXE .....(Telnet). 一个 Telnet 客户端, 可用于访问远程Telnet 服务器系统.tftp.exe .......简单文件传输协议应用程序toolhelp.dll ...Windows 调试工具助手库traffic.dll ....Microsoft 网络交通控制 1.0 DLL .......将文件夹列为树形结构tsbyuv.dll .....东芝视频解码器typelib.dll ....OLE 2.1 16/32 相互操作库ufat.dll .......FAT 工具 DLLumandlg.dll ....UManDlg DLLunimdm.tsp .....unimdmat.dll ...通用调制解调器服务提供程序 AT 微型驱动ureg.dll .......注册表工具 DLLusbmon.dll .....标准动态打印端口监视器DLLUSER.EXE .......(Windows 用户界面核心组件). 用于保持 Win16 的兼容性效的 Win32 应用程序.v7vga.rom .......vbajet32.dll ...Visual Basic 应用程序开发环境- Expression 服务加载器vcdex.dll ......32 位MSCDEX 虚拟设备驱动vdmredir.dll ...DOS 虚拟机网络接口库verifier.dll ...标准应用程序验证提供程序dllVERIFIER.EXE ...(驱动验证管理器). 可用它探测一个驱动的操作是否会导致系统冲突.vfpodbc.dll ....vfpodbcvga256.dll .....256 色 VGA/SVGA 显示驱动vga64k.dll .....32K/64K 色 VGA/SVGA 显示驱动View Channels.scf ..(查看频道).vjoy.dll .......32 位手柄虚拟设备驱动 (我没有手柄)w32topl.dll ....Windows NT Topology 维护工具wavemsp.dll ....Microsoft Wave MSPwdl.trm ........webvw.dll ......网页视图外壳扩展库WEXTRACT.EXE ...(Win32 Cab 自解压程序创建工具). 用于提取 Cab 压缩包中的文件. wiasf.ax .......WIA 流快照滤镜wifeman.dll ....Windows WIFE 接口核心组件 ........用于保持兼容性win87em.dll ....winbrand.dll ...Windows Branding 资源WINCHA T.EXE ....简单的聊天工具winfax.dll .....Microsoft 传真 API 支持 DLL (我没有传真机.)winhelp.hlp ....WINHLP32.EXE ...(Windows 帮助). 用于打开帮助文件.WINMSD.EXE .....(Windows XP 诊断工具或是系统信息工具). Windows XP 诊断工具.winnls.dll .....Windows IME 接口核心组件winntbbu.dll ...Windows 安装画面 DLLwinoldap.mod ...winshfhc.dll ...文件风险评估winsock.dll ....Windows Socket 16-Bit DLLwinstrm.dll ....Streams DLLwkssvc.dll .....Workstation 服务 DLLwmidx.dll ......Windows Media 索引 DLLwmiprop.dll ....WDM 动态属性页面协同安装程序wmv8ds32.ax ....(文件版本: 8.0.0.4000). Windows Media 视频解码器 V8wmvds32.ax .....Windows Media 视频解码器WOWDEB.EXE .....(WOW 调试程序). WOW 调试程序. Win16 调试助手wowexec.exe ....Windows Win16 程序启动工具wowfax.dll .....Windows 3.1 兼容传真驱动 DLLwowfaxui.dll ...Windows 3.1兼容传真驱动DLLWPABALN.EXE ....(Windows 产品激活). Windows 产品激活气球提示器.WRITE.EXE ......写字板, 支持纯文本和 RTF 文档.有 Word 就不用它了wscntfy.exe ....Windows 安全中心通知程序wscui.cpl ...... 安全中心控制面板小程序WSCRIPT.EXE ....(脚本宿主). 基于 Windows 的脚本宿主.wshatm.dll .....Windows 套接层助手 DLLwshbth.dll .....Windows套接层助手DLLwshcon.dll .....Microsoft (r) Windows 脚本控制器wshisn.dll .....NWLINK2套接层助手DLLwshnetbs.dll bios Windows套接层助手DLLwshom.ocx ......Windows 脚本宿主运行时库WshRm.dll ......用于 PGM 的 Windows套接层助手wsnmp32.dll ....Microsoft WinSNMP v2.0 Manager APIxactsrv.dll ....下级 API 服务器 DLLxcopy.exe ......加强版的复制命令xenroll.dll ....XEnrollxpob2res.dll ...Service Pack 2 OOB 消息............350 个没有删除的 System32 文件...以及原因............我为什么不删除这些文件是有很多重要原因的, 其中有许多文件要经常用到. 我会把为什么不想删除这些文件的原因列在下面.NVDVD 需要以下文件acelpdec.ax 音频解码器以下是 NVDVD 安装的文件:DolbyHph.dll .....杜比耳机引擎license.955200 ...... <-- 在我把这个看起来无害的文件删除之后,当我重启电脑时就会提示内存出错,还会在事件查看器中显示程序错误. 即使我将其放回system32 文件夹中, 错误仍然存在.msxml3a.dll ....XML 资源文件-------------------------------------------------Needed for Regeditaclui.dll .....Security Descriptor Editorclb.dll .....Column List Box-------------------------------------------------重启电脑需要以下文件AUTOCHK.EXE ..(自动检查磁盘). 如果存储卷被标记为杂乱的话 (有坏簇, 错误区块, 或是有其它损坏), 那么在 WinXP 启动期间就会自动运行这个程序.bootvid.dll .....VGA 启动驱动csseqchk.dll ....CSSeqChkdpcdll.dll ......Dpcdll Modulehal.dll ........(硬件抽象层). 隐藏 Windows 应用程序处理硬件问题的复杂性.kdcom.dll .......内核调试程序硬件扩展 DLLshgina.dll .....Windows 外壳用户登录 <-- 这个文件用于从你的桌面上重启电脑.进一步讲, 一旦你将其删除或是将其从 system32 文件夹中移走,那么即使你将其放回, 也照样无法从你的桌面重新启动.USERINIT.EXE ..(用户初始化). 在用户登录之后, 用于确定操作系统的环境.-------------------------------------------------安装 Yahoo Messenger 需要以下文件A VICAP32.dll .....A VI 捕获类当我安装 Yahoo Messenger 时,弹出以下错误对话框:"无法启动这个程序, 因为没有找到A VICAP32.dll. 请安装此文件以解决这个问题."然而, 即使出现了这个消息, 也能成功安装 Yahoo Messenger.-------------------------------------------------这些文件属于 Windows Media Player 10avifil32.dll .....Microsoft A VI 文件支持库 <-- Plus! MP3 Audio Converter LE 需要此文件blackbox.dll ..BlackBox DLLLOGAGENT.EXE ..(Windows Media Player 日志代理). 可记录 Windows Media Player 出现的错误.MsPMSP.dll ....Microsoft Media 设备服务提供程序MSSCP.dll .....Windows Media 安全内容提供程序msvfw32.dll ...Microsoft Video for Windows DLL。
linux 读取文件的原理

linux 读取文件的原理
Linux 读取文件的原理主要涉及到操作系统、文件系统和硬件等多个方面。
下面是一个简要的概述:
1.文件系统:Linux 系统使用的是类Unix 的文件系统,称为Ext4。
文件系统负责管理文件在硬盘上的存储和访问,以及文件的权限和属性等信息。
当一个程序试图读取一个文件时,文件系统会接收到这个请求,并查找文件在硬盘上的位置。
2.打开文件:要读取一个文件,首先需要打开这个文件。
在Linux 中,打开文件是通过系统调用(如open() 或fopen())实现的。
这些系统调用会向操作系统发出请求,请求中包含文件名和打开文件的模式(例如只读、写入等)。
操作系统会查找文件并返回一个文件描述符,这个文件描述符是一个整数,用于标识已经打开的文件。
3.读取文件数据:一旦文件被打开,就可以通过系统调用(如read() 或fread())来读取文件的内容。
这些系统调用会向操作系统发出请求,请求中包含文件描述符、读取的起始位置和要读取的字节数。
操作系统会将读取的请求传递给硬件,硬件会从硬盘中读取相应的数据,并将其存储在内存中。
4.关闭文件:当读取完文件后,需要通过系统调用(如close() 或fclose())来关闭文件。
这个系统调用会将文件描述符释放回操作系统,以便其他程序可以使用它。
Linux命令高级技巧使用lsof命令查看打开文件和进程

Linux命令高级技巧使用lsof命令查看打开文件和进程在Linux系统中,lsof(list open files)命令是一种用于查看打开文件和进程的强大工具。
它可以帮助我们了解系统中当前打开的文件、网络连接以及与之相关的进程等信息。
本文将介绍使用lsof命令进行高级技巧的一些方法和技巧。
一、基本用法使用lsof命令的基本语法如下:lsof [options]其中,options为命令的选项,可以根据需求进行相应的选择。
现在我们来看几个常用的选项:1. -p选项:指定进程ID使用-p选项可以筛选出某个特定进程打开的文件和网络连接。
例如,要查看进程ID为1234的进程打开的文件,可以使用以下命令:lsof -p 12342. -u选项:指定用户名使用-u选项可以筛选出某个特定用户打开的文件和网络连接。
例如,要查看用户名为user的用户打开的文件,可以使用以下命令:lsof -u user3. -c选项:指定进程名使用-c选项可以筛选出某个特定进程名相关的文件和网络连接。
例如,要查看进程名为nginx的进程打开的文件,可以使用以下命令:lsof -c nginx二、进阶用法除了基本的选项外,lsof还提供了一些进阶的用法,可以更灵活地查看和筛选文件和进程。
1. 查看某个目录下的打开文件使用lsof命令可以方便地查看某个目录下的打开文件。
例如,要查看目录“/var/log”下的打开文件,可以使用以下命令:lsof /var/log2. 查看通过网络建立的连接lsof命令还可以查看通过网络建立的连接。
例如,要查看所有的TCP连接,可以使用以下命令:lsof -i TCP3. 查看指定端口的进程和连接有时候我们需要查看某个特定端口的进程和连接情况,lsof也可以胜任这个任务。
例如,要查看TCP端口80的进程和连接,可以使用以下命令:lsof -i :804. 查看由某个进程打开的文件除了按照进程ID查看文件外,我们还可以通过进程名来查看。
你不知道的Linux内核中的proc文件系统

你不知道的Linux内核中的proc文件系统简介procfs文件系统是内核中的一个特殊文件系统。
它是一个虚拟文件系统: 它不是实际的存储设备中的文件,而是存在于内存中。
procfs中的文件是用来允许用户空间的程序访问内核中的某些信息(比如进程信息在 /proc/[0-9]+/中),或者用来做调试用途(/proc/ksyms,这个文件列出了已经登记的内核符号,这些符号给出了变量或函数的地址。
每行给出一个符号的地址,符号名称以及登记这个符号的模块。
程序ksyms、insmod和kmod使用这个文件。
它还列出了正在运行的任务数,总任务数和最后分配的PID。
)这个文档描述了内核中procfs文件系统的使用。
它以介绍所有和管理文件系统相关的函数开始。
在函数介绍后,它还展示了怎么和用户空间通信,和一些小技巧。
在文档的最后,还给出了一个完整的例子。
注意/proc/sys中的文件属于sysctl文件,它们不属于procfs文件系统,被另外一套完全不同的api管理。
seq_fileprocfs在处理大文件时有点笨拙。
为了清理procfs文件系统并且使内核编程简单些,引入了seq_file机制。
seq_file机制提供了大量简单的接口去实现大内核虚拟文件。
seq_file机制适用于你利用结构序列去创建一个返回给用户空间的虚拟文件。
要使用seq_file机制,你必须创建一个”iterator”对象,这个对象指向这个序列,并且能逐个指向这个序列中的对象,此外还要能输出这个序列中的任一个对象。
它听起来复杂,实际上,操作过程相当简单。
接下来将用实际的例子展示到底怎么做。
首先,你必须包含头文件。
接下来,你必须创建迭代器方法:start, next, stop, and show。
start方法通常被首先调用。
这个方法的函数原型是:void *start(struct seq_file *sfile, loff_t *pos);sfile没什么作用,通常被忽略。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <linux/version.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/fcntl.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/firmware.h>
#include <linux/fs.h>
#include <asm/uaccess.h>
#include <linux/mempolicy.h>
#include <linux/mount.h>
MODULE_LICENSE("GPL");
/**
** \fn openFile
** \brief Open a file
** \param pathname the path to the file to be opened
*\param flags permision flags to open the file with
* * \param mode mode flags to open the file with
* * \param uid owner user id
* * \param gid owner group id
* * \return file_ptr pointer to the opened file
* * NULL - err_code error opening as indicated by the error code
* */
static struct file *openFile (const char *filename, int32_t flags, int32_t mode, uid_t uid, gid_t gid) {
struct file *file;
do {
struct dentry *saved_root = current->fs->pwd.dentry;
struct vfsmount *saved_mnt = current->fs->pwd.mnt;
current->fs->pwd.dentry = init_task.fs->pwd.dentry;
current->fs->pwd.mnt = init_task.fs->pwd.mnt;
if (NULL == (file = filp_open (filename, flags, mode)))
printk(KERN_ERR "kermit: can't open file %s!\n", filename);
current->fs->pwd.mnt = saved_mnt;
current->fs->pwd.dentry = saved_root;
} while (0);
return file;
}
/**
* * \fn closeFile
* * \brief Close a file
* * \param file pointer to the file to be closed
* * \return 0 success
* * != 0 error closing the file as indicated by the error code * */
static int32_t closeFile (struct file *file)
{
return filp_close (file, current->files);
}
/**
* * \fn readFile
* * \brief Read from a file
* * \param file pointer to the file to be read from
* * \param addr buffer to hold the read data
* * \param len number of bytes to read
* * \param pos starting position
* * \return number of bytes read
* *
* * \warning file should be a valid file pointer
* * and the corresponding file should
* * be opened, i.e. the file should
* * located be on the linked node
* */
static int32_t readFile(struct file *file, char *addr, size_t len, loff_t *pos) {
int32_t re t;
do {
mm_segment_t old_fs;
old_fs = get_fs();
set_fs(KERNEL_DS); /* Enable to read in kernel memory */
ret = vfs_read(file, addr, len, pos);
set_fs(old_fs); /* Disable to read in kernel memory */ } while (0);
return ret;
}
static int __init hello_init (void)
{
char cbuf[128] = {0};
printk("Hello module init\n");
struct file *lut_fp = openFile("/tmp/1.txt", 0, 0, 0, 0);
if (NULL == lut_fp ) {
return 0;
}
lut_fp->f_pos = 0;
readFile(lut_fp, cbuf, sizeof(cbuf), &lut_fp->f_pos);
printk("%s \n", cbuf);
closeFile (lut_fp);
return 0;
}
static void __exit hello_exit (void)
{
printk("Hello module exit\n");
}
module_init(hello_init);
module_exit(hello_exit);。