proc_mobility_base_set 子例程

用途

设置或取消设置AIX®实时更新使用的属性,以指示当前进程是一个base过程。

标准 C 库 (libc.a)

语法

#include <sys/mobility.h>

int  proc_mobility_base_set (pid , flag),
pid_t pid;
int flag
;

描述

可以使用 proc_mobility_base_set 子例程将调用进程注册为base实时更新 操作的过程。

基本流程是在 实时更新 操作期间未保存和迁移的流程。 基本进程保留在原始逻辑分区 (LPAR) 上,而不是迁移到替代 LPAR。

只有一个过程childinit进程可以注册为base过程。 否则,错误代码EINVAL返回。

proc_mobility_base_set 子例程可用于注册base仅当正在进行实时内核更新 (LKU) 时处理。 如果没有正在进行的 LKU ,那么错误代码EAGAIN返回

参数

描述
pid 要对其执行操作的进程标识。 值 0 指示当前进程。 如果指定非零值,那么它必须与调用进程的 PID 匹配。
标记 MOBILITY_BASE_PROCESS 标志用于设置基本属性。 值 0 用于取消设置基本属性。

返回值

描述
0 成功
1 错误

错误代码

错误代码 描述
ENOSYS 没有建立流动制度。
ESRCH 没有这样的进程。
EINVAL 输入参数无效。
EAGAIN 无 LKU ,正在进行中

示例

以下示例显示了 proc_mobility_base_set 子例程的用法:
#include <stdio.h>
#include <sys/mobility.h>
int main(int argc, char *argv[])
{
	int rc = 0;
	pid_t pid = getpid();

	/* Mark this process as a base process */
	rc = proc_mobility_base_set(0, MOBILITY_BASE_PROCESS);

	if (rc) {
		printf(“proc_mobility_base_set failed, errno %d\n”, errno);
		exit(-1);
	}

	printf(“Process %d is now marked as a base process.\n”, pid);

}