| The Gaudi Framework v28r2p1 (f1a77ff4)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

Classes | Namespaces | Macros | Enumerations | Functions
ProcessDescriptor.cpp File Reference
`#include <errno.h>`
`#include <string>`
`#include "unistd.h"`
`#include "libgen.h"`
`#include <cstdio>`
`#include <sstream>`
`#include <iostream>`
`#include <fcntl.h>`
`#include "sys/times.h"`
`#include <sys/types.h>`
`#include <sys/signal.h>`
`#include <sys/syscall.h>`
`#include <sys/procfs.h>`
`#include <sys/time.h>`
`#include <sys/resource.h>`
`#include "ProcessDescriptor.h"`
`#include "GaudiKernel/ModuleInfo.h"`
`#include "GaudiKernel/System.h"`
Include dependency graph for ProcessDescriptor.cpp:

Go to the source code of this file.

## Classes
struct | linux_proc

## Namespaces
| System
| Note: OS specific details for environment resolution.

## Macros
#define | GAUDIKERNEL_PROCSTAT_CPP
#define | WINVER 0

## Enumerations
enum | System::ProcessInfoCommand { System::ProcessBasicInformation, System::ProcessQuotaLimits, System::ProcessIoCounters, System::ProcessVmCounters, System::ProcessTimes, System::ProcessBasePriority, System::ProcessRaisePriority, System::ProcessDebugPort, System::ProcessExceptionPort, System::ProcessAccessToken, System::ProcessLdtInformation, System::ProcessLdtSize, System::ProcessDefaultHardErrorMode, System::ProcessIoPortHandlers, System::ProcessPooledUsageAndLimits, System::ProcessWorkingSetWatch, System::ProcessUserModeIOPL, System::ProcessEnableAlignmentFaultFixup, System::ProcessPriorityClass, System::ProcessWx86Information, System::ProcessHandleCount, System::ProcessAffinityMask, System::ProcessPriorityBoost, System::MaxProcessInfoClass, System::ProcessEllapsedTime }

## Functions
void | readProcStat (long pid, linux_proc &pinfo)

## Macro Definition Documentation

#define GAUDIKERNEL_PROCSTAT_CPP

Definition at line 15 of file ProcessDescriptor.cpp.

#define WINVER 0

Definition at line 74 of file ProcessDescriptor.cpp.

## Function Documentation

void readProcStat | ( | long | pid,
|  | linux_proc & | pinfo
| ) |  |

Definition at line 305 of file ProcessDescriptor.cpp.

305 {
306
307 int cnt, fd;
308 char buf[512];
309
310 std::ostringstream ost;
311
312 ost << "/proc/" << pid << "/stat";
313 std::string fname = ost.str();
314 if((fd=open(fname.c_str(),O_RDONLY))<0) {
315 std::cerr << "Failed to open " << ost.str() << std::endl;
316 return;
317 }
318
319 lseek(fd,0,SEEK_SET);
320 if((cnt=read(fd,buf,sizeof(buf)))<0) {
321 std::cout << "LINUX Read of Proc file failed:" << std::endl;
322 close(fd);
323 return;
324 }
325
326 // Format
327 if(cnt>0) {
328 buf[cnt]='\0';
329 sscanf(buf,
330 //1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 20 1 2 3 4 5 6 7 8 9 30 1 2 3 4 5
331 "%d %s %c %d %d %d %d %d %lu %lu %lu %lu %lu %lu %lu %ld %ld %ld %ld %ld %ld %llu %lu %ld %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu",
332 &pinfo.pid,
333 pinfo.comm,
334 &pinfo.state,
335 &pinfo.ppid,
336 &pinfo.pgrp,
337 &pinfo.session,
338 &pinfo.tty,
339 &pinfo.tpgid,
340 &pinfo.flags,
341 &pinfo.minflt,
342 &pinfo.cminflt,
343 &pinfo.majflt,
344 &pinfo.cmajflt,
345 &pinfo.utime,
346 &pinfo.stime,
347 &pinfo.cutime,
348 &pinfo.cstime,
349 &pinfo.priority,
350 &pinfo.nice,
351 &pinfo.num_threads,
352 &pinfo.itrealvalue,
353 &pinfo.starttime,
354 &pinfo.vsize,
355 &pinfo.rss,
356 &pinfo.rlim,
357 &pinfo.startcode,
358 &pinfo.endcode,
359 &pinfo.startstack,
360 &pinfo.kstkesp,
361 &pinfo.kstkeip,
362 &pinfo.signal,
363 &pinfo.blocked,
364 &pinfo.sigignore,
365 &pinfo.sigcatch,
366 &pinfo.wchan
367 );
368 }
369 close(fd);
370 }
linux_proc::minflt
unsigned long minflt
Definition: ProcessDescriptor.cpp:272
linux_proc::kstkesp
unsigned long kstkesp
Definition: ProcessDescriptor.cpp:291
linux_proc::signal
unsigned long signal
Definition: ProcessDescriptor.cpp:293
linux_proc::wchan
unsigned long wchan
Definition: ProcessDescriptor.cpp:297
gaudirun.fd
fd
Definition: gaudirun.py:459
linux_proc::sigcatch
unsigned long sigcatch
Definition: ProcessDescriptor.cpp:296
linux_proc::state
char state
Definition: ProcessDescriptor.cpp:265
linux_proc::tty
int tty
Definition: ProcessDescriptor.cpp:269
std::sscanf
T sscanf(T...args)
linux_proc::flags
unsigned long flags
Definition: ProcessDescriptor.cpp:271
linux_proc::pid
int pid
Definition: ProcessDescriptor.cpp:263
std::endl
T endl(T...args)
linux_proc::comm
char comm[400]
Definition: ProcessDescriptor.cpp:264
linux_proc::num_threads
long num_threads
Definition: ProcessDescriptor.cpp:282
hivetimeline.read
def read(f, regex='.*', skipevents=0)
Definition: hivetimeline.py:19
linux_proc::session
int session
Definition: ProcessDescriptor.cpp:268
std::string
STL class.
linux_proc::cstime
long cstime
Definition: ProcessDescriptor.cpp:279
linux_proc::pgrp
int pgrp
Definition: ProcessDescriptor.cpp:267
linux_proc::cutime
long cutime
Definition: ProcessDescriptor.cpp:278
linux_proc::nice
long nice
Definition: ProcessDescriptor.cpp:281
std::ostringstream
STL class.
linux_proc::itrealvalue
long itrealvalue
Definition: ProcessDescriptor.cpp:283
linux_proc::vsize
unsigned long vsize
Definition: ProcessDescriptor.cpp:285
std::ostringstream::str
T str(T...args)
linux_proc::startstack
unsigned long startstack
Definition: ProcessDescriptor.cpp:290
linux_proc::rss
long rss
Definition: ProcessDescriptor.cpp:286
linux_proc::cminflt
unsigned long cminflt
Definition: ProcessDescriptor.cpp:273
linux_proc::tpgid
int tpgid
Definition: ProcessDescriptor.cpp:270
linux_proc::majflt
unsigned long majflt
Definition: ProcessDescriptor.cpp:274
linux_proc::starttime
unsigned long long starttime
Definition: ProcessDescriptor.cpp:284
linux_proc::cmajflt
unsigned long cmajflt
Definition: ProcessDescriptor.cpp:275
linux_proc::kstkeip
unsigned long kstkeip
Definition: ProcessDescriptor.cpp:292
linux_proc::priority
long priority
Definition: ProcessDescriptor.cpp:280
linux_proc::startcode
unsigned long startcode
Definition: ProcessDescriptor.cpp:288
std::string::c_str
T c_str(T...args)
linux_proc::utime
unsigned long utime
Definition: ProcessDescriptor.cpp:276
linux_proc::ppid
int ppid
Definition: ProcessDescriptor.cpp:266
linux_proc::blocked
unsigned long blocked
Definition: ProcessDescriptor.cpp:294
std::cerr
linux_proc::endcode
unsigned long endcode
Definition: ProcessDescriptor.cpp:289
linux_proc::stime
unsigned long stime
Definition: ProcessDescriptor.cpp:277
linux_proc::sigignore
unsigned long sigignore
Definition: ProcessDescriptor.cpp:295
linux_proc::rlim
unsigned long rlim
Definition: ProcessDescriptor.cpp:287