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: .seealso: `PetscGetHostName()` 32: @*/ 33: PetscErrorCode PetscGetUserName(char name[], size_t nlen) 34: { 35: const char *user; 37: PetscFunctionBegin; 38: user = getenv("USER"); 39: if (!user) user = "Unknown"; 40: PetscCall(PetscStrncpy(name, user, nlen)); 41: PetscFunctionReturn(PETSC_SUCCESS); 42: } 43: #endif