Actual source code: fuser.c

  1: /*
  2:       Code for manipulating files.
  3: */
  4: #include <petscsys.h>
  5: #if defined(PETSC_HAVE_WINDOWS_H)
  6:   #include <windows.h>
  7: #endif

  9: #if defined(PETSC_HAVE_GET_USER_NAME)
 10: PetscErrorCode PetscGetUserName(char name[], size_t nlen)
 11: {
 12:   PetscFunctionBegin;
 13:   GetUserName((LPTSTR)name, (LPDWORD)(&nlen));
 14:   PetscFunctionReturn(PETSC_SUCCESS);
 15: }

 17: #else
 18: /*@C
 19:   PetscGetUserName - Returns the name of the user.

 21:   Not Collective

 23:   Input Parameter:
 24: . nlen - length of name

 26:   Output Parameter:
 27: . name - contains user name. Must be long enough to hold the name

 29:   Level: developer

 31:   Fortran Note:
 32: .vb
 33:   character*(32) str
 34:   call PetscGetUserName(str,ierr)
 35: .ve

 37: .seealso: `PetscGetHostName()`
 38: @*/
 39: PetscErrorCode PetscGetUserName(char name[], size_t nlen)
 40: {
 41:   const char *user;

 43:   PetscFunctionBegin;
 44:   user = getenv("USER");
 45:   if (!user) user = "Unknown";
 46:   PetscCall(PetscStrncpy(name, user, nlen));
 47:   PetscFunctionReturn(PETSC_SUCCESS);
 48: }
 49: #endif