Implemented by the Process Manager component of procnto, the /proc virtual filesystem lets you access and control every process and thread running within the system.
The /proc filesystem manifests each process currently running on the system as a directory whose name is the numerical process ID (in decimal) of the process. Inside this directory, you'll find the following files:
# pidin -p 28687 arg pid Arguments 28687 io-pkt-v6-hc -dsmsc9500 mac=96a414016206 # echo `cat /proc/28687/cmdline` io-pkt-v6-hc-dsmsc9500mac=96a414016206
# echo `cat /proc/28687/exefile` /sbin/io-pkt-v6-hc
Threads are accessible through the as file created for the process; you can select a thread via devctl() calls. You can use the following standard functions to access the /proc filesystem:
Function | Purpose |
---|---|
open() | Establish a file descriptor to a process |
read() | Read data from the process's address space |
write() | Write data to the process's address space |
stat() | Return struct stat information |
lseek() | Establish a position within the process's address space for further operations |
devctl() | Manipulate a process or thread |
close() | Release a file descriptor |
Ancillary functions (such as readdir(), opendir(), and so on) are supported on the directory /proc itself—this aids in implementing commands such as ls.