xref: /petsc/src/sys/utils/fuser.c (revision 10450e9e44b354a0a3da7bbd573407bdf051df10)
17d0a6c19SBarry Smith 
2e5c89e4eSSatish Balay /*
3e5c89e4eSSatish Balay       Code for manipulating files.
4e5c89e4eSSatish Balay */
5c6db04a5SJed Brown #include <petscsys.h>
6e5c89e4eSSatish Balay #if defined(PETSC_HAVE_WINDOWS_H)
7e5c89e4eSSatish Balay   #include <windows.h>
8e5c89e4eSSatish Balay #endif
9e5c89e4eSSatish Balay 
10e5c89e4eSSatish Balay #if defined(PETSC_HAVE_GET_USER_NAME)
11d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscGetUserName(char name[], size_t nlen)
12d71ae5a4SJacob Faibussowitsch {
13e5c89e4eSSatish Balay   PetscFunctionBegin;
14e5c89e4eSSatish Balay   GetUserName((LPTSTR)name, (LPDWORD)(&nlen));
153ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
16e5c89e4eSSatish Balay }
17e5c89e4eSSatish Balay 
1845082d64SJed Brown #else
19e5c89e4eSSatish Balay /*@C
20e5c89e4eSSatish Balay   PetscGetUserName - Returns the name of the user.
21e5c89e4eSSatish Balay 
22e5c89e4eSSatish Balay   Not Collective
23e5c89e4eSSatish Balay 
24e5c89e4eSSatish Balay   Input Parameter:
25*10450e9eSJacob Faibussowitsch . nlen - length of name
26e5c89e4eSSatish Balay 
27e5c89e4eSSatish Balay   Output Parameter:
28e5c89e4eSSatish Balay . name - contains user name. Must be long enough to hold the name
29e5c89e4eSSatish Balay 
30e5c89e4eSSatish Balay   Level: developer
31e5c89e4eSSatish Balay 
32db781477SPatrick Sanan .seealso: `PetscGetHostName()`
33e5c89e4eSSatish Balay @*/
34d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscGetUserName(char name[], size_t nlen)
35d71ae5a4SJacob Faibussowitsch {
3645082d64SJed Brown   const char *user;
37e5c89e4eSSatish Balay 
38e5c89e4eSSatish Balay   PetscFunctionBegin;
3945082d64SJed Brown   user = getenv("USER");
4045082d64SJed Brown   if (!user) user = "Unknown";
419566063dSJacob Faibussowitsch   PetscCall(PetscStrncpy(name, user, nlen));
423ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
4345082d64SJed Brown }
44ed74d47aSSatish Balay #endif
45