怎么监视windows 各进程所占用的文件

如何监视windows 各进程所占用的文件?
今天发现gcc(MinGW)编译器生成的a.exe老是被自动删除,很是郁闷,怎么监视windows 各进程所占用的文件各位亲,windows有没有自带的工具可以监视各个进程正在使用那些文件的??

------解决方案--------------------
process explorer, 查看HANDLE http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
------解决方案--------------------
http://www.nirsoft.net/utils/opened_files_view.html

------解决方案--------------------
linux 有lsof命令可以查看,windows应该也提供相应的命令查询:Openfiles


Openfiles命令:仔细检查

  许多Windows管理员不熟悉Windows内置的强大的openfiles命令。正如其名,这个命令能够显示计算机上打开的所有文件,以及与文件相关的进程名。近期的Windows版本XP Pro和Vista具有该项功能。就像Linux和Unix中常用的lsof命令一样,openfiles命令能为管理员显示计算机上打开的所有文件,同时给出进程名和每个文件的全路径。然而,openfiles和losf又有所不同,它不提供进程ID编号、用户编号等其它详细信息。

  Openfiles命令能收集大量的信息,因而称其为贪婪的性能也不足为奇。与openfiles相关的账户在默认情况下是关闭的,这就意味着用户只能打开命令后才能获得相关数据。这项功能可以通过运行以下命令加以激活:

  C:> openfiles /local on

  用户需要重启计算机,待系统重新登陆后,才能能运行以下openfiles命令:

  C:> openfiles /query /v

  这项命令的输出内容非常繁琐,包括用户账户打开的文件在后台运行的每个进程。要了解感染了哪些恶意软件,或者黑客对计算机做了什么,用户应该找出那些不正常的文件或意料之外的文件,尤其是计算机上非本地用户相关的文件。

  完成openfiles命令后,运行以下命令关闭账户功能,使系统返回到正常状态:

  C:> openfiles /local off