kgetpname 内核服务
用途
提供调用进程的基本程序名。
语法
#include <sys/encap.h>
int kgetpname (char * Buffer, size_t *BufferSize);
描述
kgetpname 内核服务将调用进程的程序名复制到 Buffer指定的缓冲区中。 包括空结束符在内,服务复制到缓冲区中的内容不会超过 *缓冲区大小、MAXCOMLEN,或程序名称的实际大小(以字节为单位),以较小者为准。 如果 Buffer 为 NULL,或 *BufferSize 为 0,则不会执行复制。 如果将完整的程序名复制到缓冲区,则复制的字节总数将写入 *BufferSize 中。 如果 kgetpname 无法将完整的程序名称复制到缓冲区,则以字节为单位的完整程序名称大小将被写入 *BufferSize 中,并返回 ENAMETOOLONG 。
执行环境
只能从进程环境调用 kgetpname 内核服务。
返回值
| 项 | 描述 |
|---|---|
| 0 | 已成功地将完整程序名写入缓冲区。 |
| ENAMETOOLONG | 只有完整程序名的一部分被写入缓冲区,kgetpname 将完整程序名的(正)字节长度(包括空字符)存储到 *BufferSize 中。 |
| EINVAL | Buffer 为空,BufferSize 为空,或 *BufferSize 为 0。 |
| ENOTSUP | 从中断上下文中调用了 kgetpname 内核服务。 |