Actual source code: fuser.c


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

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

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

 22:     Not Collective

 24:     Input Parameter:
 25:     nlen - length of name

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

 30:     Level: developer

 32: .seealso: `PetscGetHostName()`
 33: @*/
 34: PetscErrorCode PetscGetUserName(char name[], size_t nlen)
 35: {
 36:   const char *user;

 38:   PetscFunctionBegin;
 39:   user = getenv("USER");
 40:   if (!user) user = "Unknown";
 41:   PetscCall(PetscStrncpy(name, user, nlen));
 42:   PetscFunctionReturn(PETSC_SUCCESS);
 43: }
 44: #endif