Exemple #1
0
 def open_files(self):
     retlist = []
     files = os.listdir("/proc/%s/fd" % self.pid)
     hit_enoent = False
     for fd in files:
         file = "/proc/%s/fd/%s" % (self.pid, fd)
         if os.path.islink(file):
             try:
                 file = os.readlink(file)
             except OSError:
                 # ENOENT == file which is gone in the meantime
                 err = sys.exc_info()[1]
                 if err.errno in (errno.ENOENT, errno.ESRCH):
                     hit_enoent = True
                     continue
                 raise
             else:
                 # If file is not an absolute path there's no way
                 # to tell whether it's a regular file or not,
                 # so we skip it. A regular file is always supposed
                 # to be absolutized though.
                 if file.startswith('/') and isfile_strict(file):
                     ntuple = _common.popenfile(file, int(fd))
                     retlist.append(ntuple)
     if hit_enoent:
         # raise NSP if the process disappeared on us
         os.stat('/proc/%s' % self.pid)
     return retlist
Exemple #2
0
 def open_files(self):
     retlist = []
     files = os.listdir("/proc/%s/fd" % self.pid)
     hit_enoent = False
     for fd in files:
         file = "/proc/%s/fd/%s" % (self.pid, fd)
         if os.path.islink(file):
             try:
                 file = os.readlink(file)
             except OSError:
                 # ENOENT == file which is gone in the meantime
                 err = sys.exc_info()[1]
                 if err.errno in (errno.ENOENT, errno.ESRCH):
                     hit_enoent = True
                     continue
                 raise
             else:
                 # If file is not an absolute path there's no way
                 # to tell whether it's a regular file or not,
                 # so we skip it. A regular file is always supposed
                 # to be absolutized though.
                 if file.startswith('/') and isfile_strict(file):
                     ntuple = _common.popenfile(file, int(fd))
                     retlist.append(ntuple)
     if hit_enoent:
         # raise NSP if the process disappeared on us
         os.stat('/proc/%s' % self.pid)
     return retlist
Exemple #3
0
 def open_files(self):
     if self.pid == 0:
         return []
     files = []
     rawlist = cext.proc_open_files(self.pid)
     for path, fd in rawlist:
         if isfile_strict(path):
             ntuple = _common.popenfile(path, fd)
             files.append(ntuple)
     return files
Exemple #4
0
 def open_files(self):
     if self.pid == 0:
         return []
     files = []
     rawlist = cext.proc_open_files(self.pid)
     for path, fd in rawlist:
         if isfile_strict(path):
             ntuple = _common.popenfile(path, fd)
             files.append(ntuple)
     return files
Exemple #5
0
 def open_files(self):
     if self.pid in (0, 4):
         return []
     retlist = []
     # Filenames come in in native format like:
     # "\Device\HarddiskVolume1\Windows\systemew\file.txt"
     # Convert the first part in the corresponding drive letter
     # (e.g. "C:\") by using Windows's QueryDosDevice()
     raw_file_names = cext.proc_open_files(self.pid)
     for file in raw_file_names:
         file = _convert_raw_path(file)
         if isfile_strict(file) and file not in retlist:
             ntuple = _common.popenfile(file, -1)
             retlist.append(ntuple)
     return retlist
Exemple #6
0
 def open_files(self):
     if self.pid in (0, 4):
         return []
     retlist = []
     # Filenames come in in native format like:
     # "\Device\HarddiskVolume1\Windows\systemew\file.txt"
     # Convert the first part in the corresponding drive letter
     # (e.g. "C:\") by using Windows's QueryDosDevice()
     raw_file_names = cext.proc_open_files(self.pid)
     for file in raw_file_names:
         file = _convert_raw_path(file)
         if isfile_strict(file) and file not in retlist:
             ntuple = _common.popenfile(file, -1)
             retlist.append(ntuple)
     return retlist
Exemple #7
0
 def open_files(self):
     retlist = []
     hit_enoent = False
     pathdir = '/proc/%d/path' % self.pid
     for fd in os.listdir('/proc/%d/fd' % self.pid):
         path = os.path.join(pathdir, fd)
         if os.path.islink(path):
             try:
                 file = os.readlink(path)
             except OSError:
                 # ENOENT == file which is gone in the meantime
                 err = sys.exc_info()[1]
                 if err.errno == errno.ENOENT:
                     hit_enoent = True
                     continue
                 raise
             else:
                 if isfile_strict(file):
                     retlist.append(_common.popenfile(file, int(fd)))
     if hit_enoent:
         # raise NSP if the process disappeared on us
         os.stat('/proc/%s' % self.pid)
     return retlist
Exemple #8
0
 def open_files(self):
     retlist = []
     hit_enoent = False
     pathdir = '/proc/%d/path' % self.pid
     for fd in os.listdir('/proc/%d/fd' % self.pid):
         path = os.path.join(pathdir, fd)
         if os.path.islink(path):
             try:
                 file = os.readlink(path)
             except OSError:
                 # ENOENT == file which is gone in the meantime
                 err = sys.exc_info()[1]
                 if err.errno == errno.ENOENT:
                     hit_enoent = True
                     continue
                 raise
             else:
                 if isfile_strict(file):
                     retlist.append(_common.popenfile(file, int(fd)))
     if hit_enoent:
         # raise NSP if the process disappeared on us
         os.stat('/proc/%s' % self.pid)
     return retlist
Exemple #9
0
 def open_files(self):
     """Return files opened by process as a list of namedtuples."""
     rawlist = cext.proc_open_files(self.pid)
     return [_common.popenfile(path, fd) for path, fd in rawlist]