lsof test
在 Mac OS X 上运行时,我得到以下输出,其中test
是内存映射文件的名称:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
filesyste 40535 buildbot txt REG 1,6 3 2466028 test
请注意,txt
在FD
字段中报告。但是,根据以下文档lsof
:
FD is the File Descriptor number of the file or:
mem memory-mapped file;
txt program text (code and data);
那么问题来了:为什么是lsof
报告txt
而不是mem
现场FD
呢?
该文件映射如下:
mmap(0, length, PROT_READ, MAP_FILE | MAP_PRIVATE, fd, 0)
其中length
是长度,fd
是文件的描述符。