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(0); 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 Concepts: user name 33 34 .seealso: PetscGetHostName() 35 @*/ 36 PetscErrorCode PetscGetUserName(char name[],size_t nlen) 37 { 38 const char *user; 39 PetscErrorCode ierr; 40 41 PetscFunctionBegin; 42 user = getenv("USER"); 43 if (!user) user = "Unknown"; 44 ierr = PetscStrncpy(name,user,nlen);CHKERRQ(ierr); 45 PetscFunctionReturn(0); 46 } 47 #endif 48