xref: /petsc/src/sys/utils/fuser.c (revision 66af8762ec03dbef0e079729eb2a1734a35ed7ff)
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