2: /* 3: Code for manipulating files. 4: */ 5: #include <petscsys.h> 6: #if defined(PETSC_HAVE_WINDOWS_H) 7: #include <windows.h> 8: #endif 10: #if defined(PETSC_HAVE_GET_USER_NAME) 11: PetscErrorCode PetscGetUserName(char name[], size_t nlen) 12: { 13: GetUserName((LPTSTR)name, (LPDWORD)(&nlen)); 14: return 0; 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: user = getenv("USER"); 38: if (!user) user = "Unknown"; 39: PetscStrncpy(name, user, nlen); 40: return 0; 41: } 42: #endif