proc_parent()
Returns the parent handle of the supplied process.
Description
The proc_parent() function is used to retrieve the parent handle of a given process. It takes a process identifier (PID) as input and returns the PID of the parent process.
In POSIX systems, each process has a parent process except for the initial process, which is typically assigned a parent of PID 1 (init process). The parent process is responsible for creating and managing its child processes.
Syntax
;;; Returns the parent handle of a particular process
(@interface func (export "proc_parent")
;;; Handle of the process to get the parent handle for
(param $pid $pid)
(result $error (expected $pid (error $errno)))
)Parameters
ctx: The function environment.pid: The process identifier (PID) of the process whose parent is to be retrieved.ret_parent: Pointer to store the returned parent process ID.
Return Value
The function returns an Errno value indicating the result of the operation. If the operation is successful, it returns Errno::Success. If the supplied process does not exist or the current process is not the parent, it returns Errno::Badf.
Logging
This function is instrumented with debug level logging. It includes the following field for debugging purposes:
pid: The process identifier (PID) of the supplied process.parent: The parent process ID.
Note
- The
proc_parent()function is used to retrieve the parent handle of a given process. - It checks if the supplied
pidmatches the current process's PID. If they match, it retrieves the parent PID using theppid()method of the current process. - If the supplied
piddoes not match the current process's PID, it attempts to retrieve the process from the control plane using theget_process()method. - The function stores the parent PID in the specified
ret_parentpointer. - The function returns
Errno::Badfif the supplied process does not exist or the current process is not the parent.