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) PetscGetUserName(char name[],size_t nlen)10PetscErrorCode 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 Fortran Note: 32 .vb 33 character*(32) str 34 call PetscGetUserName(str,ierr) 35 .ve 36 37 .seealso: `PetscGetHostName()` 38 @*/ PetscGetUserName(char name[],size_t nlen)39PetscErrorCode PetscGetUserName(char name[], size_t nlen) 40 { 41 const char *user; 42 43 PetscFunctionBegin; 44 user = getenv("USER"); 45 if (!user) user = "Unknown"; 46 PetscCall(PetscStrncpy(name, user, nlen)); 47 PetscFunctionReturn(PETSC_SUCCESS); 48 } 49 #endif 50