Exemplo n.º 1
0
/* Return the login name of the user, or NULL if it can't be determined.
   The returned pointer, if not NULL, is good only until the next call.  */
char *
getlogin (void)
{
  static char login[1024];	/* XXX */
  error_t err;

  if (err = __USEPORT (PROC, __proc_getlogin (port, login)))
    {
      errno = err;
      return NULL;
    }

  return login;
}
Exemplo n.º 2
0
/* Return at most NAME_LEN characters of the login name of the user in NAME.
   If it cannot be determined or some other error occurred, return the error
   code.  Otherwise return 0.  */
int
__getlogin_r (char *name, size_t name_len)
{
  string_t login;
  error_t err;

  if (err = __USEPORT (PROC, __proc_getlogin (port, login)))
    return errno = err;

  size_t len = __strnlen (login, sizeof login - 1) + 1;
  if (len > name_len)
    {
      errno = ERANGE;
      return errno;
    }

  memcpy (name, login, len);
  return 0;
}