從核心擷取使用者和群組名稱長度限制

您可以使用指令及子常式,從核心擷取 v_max_logname 參數。

使用 getconf 指令

您可以使用 getconf 指令與 LOGIN_NAME_MAX 參數搭配,擷取核心中的使用者和群組名稱長度限制。getconf 指令輸出包含終止 NULL 字元。

下列範例顯示如何使用 getconf 指令,從核心中擷取現行使用者和群組名稱限制:


$ getconf LOGIN_NAME_MAX
20
$

使用 sysconf 子常式

您可以使用 sysconf 子常式與 _SC_LOGIN_NAME_MAX 參數搭配,擷取核心中的使用者和群組名稱長度限制。

下列範例顯示如何使用 sysconf 子常式,從核心中擷取使用者和群組名稱長度限制:


#include <unistd.h>
main()
{
       long len;

       len = sysconf(_SC_LOGIN_NAME_MAX);

       printf("The name length limit is %d\n", len);
}

使用 sys_parm 子常式

您可以使用 sys_parm 子常式與 SYSP_V_MAX_LOGNAME 參數搭配,擷取核心中的現行使用者名稱長度限制。

下列範例顯示如何使用 sys_parm 子常式,從核心中擷取使用者名稱長度限制:
#include <sys/types.h>
#include <sys/var.h>
#include <errno.h>
main()
{
   int rc;
   struct vario myvar;

   rc = sys_parm (SYSP_GET, SYSP_V_MAX_LOGNAME, &myvar);

   if (!rc)
      printf("Max_login_name = %d\n", myvar.v.v_max_logname.value);
                   else
      printf("sys_parm() failed rc = %d, errno = %d\n", rc, errno);
}