lkml.org 
[lkml]   [2002]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectHow to open files a process has mmapped
I'm trying to solve a problem where a customer needs to be able to open 
a file a process has mmap-ed. The trouble is that the file might be
deleted (this is actually likely in this scenario) so I can't just open
the file listed in /proc/<pid>/maps.

I have looked some at this, and I haven't come up with a good solution
for this. I have come up with the following solutions:

Open /proc/<pid>/mem and get the memory directly. This has two problems:

* You have to ptrace() the process to do this. Actually, that seems
a little silly. Why do you have to ptrace() the process to do this?
* The whole file might not be mapped, thus the section of the file
that is interesting might not be in memory.

Another solution I thought of was to provide a /proc/<pid>/mapped_files
directory that works like the /proc/<pid>/fd directory. Unfortunately,
it looks very difficult to implement this because of the need to provide
consistent inodes. For fds, you have an easy way to generate inodes
with the fd number. For mmap-ed memory, you don't have a relatively
small number to do this with.

The last solution I could think of was to provide a way to open a file
with using the major/minor/inode (since these are listed for the mapped
files in the /proc/<pid>/maps file). This is kind of ugly, but it's
probably the best one I've thought of.

Any more ideas? Maybe there's an easy way to do this that I haven't found.

-Corey

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:22    [W:0.064 / U:0.188 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site