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