1 /* 2 Code for manipulating files. 3 */ 4 #include <petscsys.h> 5 #if defined(PETSC_HAVE_WINDOWS_H) 6 #include <windows.h> 7 #endif 8 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 } 16 17 #else 18 /*@C 19 PetscGetUserName - Returns the name of the user. 20 21 Not Collective 22 23 Input Parameter: 24 . nlen - length of name 25 26 Output Parameter: 27 . name - contains user name. Must be long enough to hold the name 28 29 Level: developer 30 31 .seealso: `PetscGetHostName()` 32 @*/ 33 PetscErrorCode PetscGetUserName(char name[], size_t nlen) 34 { 35 const char *user; 36 37 PetscFunctionBegin; 38 user = getenv("USER"); 39 if (!user) user = "Unknown"; 40 PetscCall(PetscStrncpy(name, user, nlen)); 41 PetscFunctionReturn(PETSC_SUCCESS); 42 } 43 #endif 44