Actual source code: fuser.c
1: /*
2: Code for manipulating files.
3: */
4: #include <petscsys.h>
5: #if defined(PETSC_HAVE_WINDOWS_H)
6: #include <windows.h>
7: #endif
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: }
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: PetscFunctionBegin;
38: user = getenv("USER");
39: if (!user) user = "Unknown";
40: PetscCall(PetscStrncpy(name, user, nlen));
41: PetscFunctionReturn(PETSC_SUCCESS);
42: }
43: #endif