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