kgetpname 内核服务

用途

提供调用进程的基本程序名。

语法

#include <sys/encap.h>
int kgetpname (char * Buffer, size_t *BufferSize);

描述

kgetpname 内核服务将调用进程的程序名复制到 Buffer指定的缓冲区中。 包括空结束符在内,服务复制到缓冲区中的内容不会超过 *缓冲区大小MAXCOMLEN,或程序名称的实际大小(以字节为单位),以较小者为准。 如果 Buffer 为 NULL,或 *BufferSize0,则不会执行复制。 如果将完整的程序名复制到缓冲区,则复制的字节总数将写入 *BufferSize 中。 如果 kgetpname 无法将完整的程序名称复制到缓冲区,则以字节为单位的完整程序名称大小将被写入 *BufferSize 中,并返回 ENAMETOOLONG

执行环境

只能从进程环境调用 kgetpname 内核服务。

返回值

描述
0 已成功地将完整程序名写入缓冲区。
ENAMETOOLONG 只有完整程序名的一部分被写入缓冲区,kgetpname 将完整程序名的(正)字节长度(包括空字符)存储到 *BufferSize 中。
EINVAL Buffer 为空,BufferSize 为空,或 *BufferSize0
ENOTSUP 从中断上下文中调用了 kgetpname 内核服务。