xref: /petsc/src/sys/utils/fuser.c (revision 6d8694c4fbab79f9439f1ad13c0386ba7ee1ca4b)
1e5c89e4eSSatish Balay /*
2e5c89e4eSSatish Balay       Code for manipulating files.
3e5c89e4eSSatish Balay */
4c6db04a5SJed Brown #include <petscsys.h>
5e5c89e4eSSatish Balay #if defined(PETSC_HAVE_WINDOWS_H)
6e5c89e4eSSatish Balay   #include <windows.h>
7e5c89e4eSSatish Balay #endif
8e5c89e4eSSatish Balay 
9e5c89e4eSSatish Balay #if defined(PETSC_HAVE_GET_USER_NAME)
PetscGetUserName(char name[],size_t nlen)10d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscGetUserName(char name[], size_t nlen)
11d71ae5a4SJacob Faibussowitsch {
12e5c89e4eSSatish Balay   PetscFunctionBegin;
13e5c89e4eSSatish Balay   GetUserName((LPTSTR)name, (LPDWORD)(&nlen));
143ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
15e5c89e4eSSatish Balay }
16e5c89e4eSSatish Balay 
1745082d64SJed Brown #else
18e5c89e4eSSatish Balay /*@C
19e5c89e4eSSatish Balay   PetscGetUserName - Returns the name of the user.
20e5c89e4eSSatish Balay 
21e5c89e4eSSatish Balay   Not Collective
22e5c89e4eSSatish Balay 
23e5c89e4eSSatish Balay   Input Parameter:
2410450e9eSJacob Faibussowitsch . nlen - length of name
25e5c89e4eSSatish Balay 
26e5c89e4eSSatish Balay   Output Parameter:
27e5c89e4eSSatish Balay . name - contains user name. Must be long enough to hold the name
28e5c89e4eSSatish Balay 
29e5c89e4eSSatish Balay   Level: developer
30e5c89e4eSSatish Balay 
31*ce78bad3SBarry Smith   Fortran Note:
32*ce78bad3SBarry Smith .vb
33*ce78bad3SBarry Smith   character*(32) str
34*ce78bad3SBarry Smith   call PetscGetUserName(str,ierr)
35*ce78bad3SBarry Smith .ve
36*ce78bad3SBarry Smith 
37db781477SPatrick Sanan .seealso: `PetscGetHostName()`
38e5c89e4eSSatish Balay @*/
PetscGetUserName(char name[],size_t nlen)39d71ae5a4SJacob Faibussowitsch PetscErrorCode PetscGetUserName(char name[], size_t nlen)
40d71ae5a4SJacob Faibussowitsch {
4145082d64SJed Brown   const char *user;
42e5c89e4eSSatish Balay 
43e5c89e4eSSatish Balay   PetscFunctionBegin;
4445082d64SJed Brown   user = getenv("USER");
4545082d64SJed Brown   if (!user) user = "Unknown";
469566063dSJacob Faibussowitsch   PetscCall(PetscStrncpy(name, user, nlen));
473ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
4845082d64SJed Brown }
49ed74d47aSSatish Balay #endif
50