kgetpname Kernel Service
Purpose
Provides the calling process's base program name.
Syntax
#include <sys/encap.h>
int kgetpname (char * Buffer, size_t *BufferSize);
Description
The kgetpname kernel service copies the program name of the calling
process into the buffer specified by Buffer. Including the null terminator,
the service copies no more than the lesser of *BufferSize, MAXCOMLEN, or the actual size of the program name in bytes into the buffer. If Buffer is NULL, or *BufferSize is 0
, no copy is performed.
If the full program name is copied into the buffer, the total number of bytes
copied is written to *BufferSize. If kgetpname cannot copy
the full program name into the buffer, the size in bytes of the full program
name is written to *BufferSize, and ENAMETOOLONG is returned.
Execution Environment
The kgetpname kernel service can only be called from the process environment.
Return Values
Item | Description |
---|---|
0 | The full program name was successfully written to the buffer. |
ENAMETOOLONG | Only part of the full program name was written to the buffer, and kgetpname stored the (positive) length in bytes (including the null character) of the full program name into *BufferSize. |
EINVAL | Buffer is Null, BufferSize is NULL,
or *BufferSize is 0 . |
ENOTSUP | The kgetpname kernel service was called from inside an interrupt context. |