xref: /petsc/src/sys/utils/fuser.c (revision 45082d6442ec9e1b1f93dc9865927cf3ea3aa1d4)
17d0a6c19SBarry Smith 
2e5c89e4eSSatish Balay /*
3e5c89e4eSSatish Balay       Code for manipulating files.
4e5c89e4eSSatish Balay */
5c6db04a5SJed Brown #include <petscsys.h>
6e5c89e4eSSatish Balay #if defined(PETSC_HAVE_PWD_H)
7e5c89e4eSSatish Balay #include <pwd.h>
8e5c89e4eSSatish Balay #endif
9e5c89e4eSSatish Balay #include <ctype.h>
10e5c89e4eSSatish Balay #include <sys/stat.h>
11e5c89e4eSSatish Balay #if defined(PETSC_HAVE_SYS_UTSNAME_H)
12e5c89e4eSSatish Balay #include <sys/utsname.h>
13e5c89e4eSSatish Balay #endif
14e5c89e4eSSatish Balay #if defined(PETSC_HAVE_WINDOWS_H)
15e5c89e4eSSatish Balay #include <windows.h>
16e5c89e4eSSatish Balay #endif
17e5c89e4eSSatish Balay #if defined(PETSC_HAVE_SYS_SYSTEMINFO_H)
18e5c89e4eSSatish Balay #include <sys/systeminfo.h>
19e5c89e4eSSatish Balay #endif
20e5c89e4eSSatish Balay #if defined(PETSC_HAVE_UNISTD_H)
21e5c89e4eSSatish Balay #include <unistd.h>
22e5c89e4eSSatish Balay #endif
23e5c89e4eSSatish Balay 
24e5c89e4eSSatish Balay 
25e5c89e4eSSatish Balay #if defined(PETSC_HAVE_GET_USER_NAME)
26e5c89e4eSSatish Balay #undef __FUNCT__
27e5c89e4eSSatish Balay #define __FUNCT__ "PetscGetUserName"
287087cfbeSBarry Smith PetscErrorCode  PetscGetUserName(char name[],size_t nlen)
29e5c89e4eSSatish Balay {
30e5c89e4eSSatish Balay   PetscFunctionBegin;
31e5c89e4eSSatish Balay   GetUserName((LPTSTR)name,(LPDWORD)(&nlen));
32e5c89e4eSSatish Balay   PetscFunctionReturn(0);
33e5c89e4eSSatish Balay }
34e5c89e4eSSatish Balay 
35*45082d64SJed Brown #else
36e5c89e4eSSatish Balay #undef __FUNCT__
37e5c89e4eSSatish Balay #define __FUNCT__ "PetscGetUserName"
38e5c89e4eSSatish Balay /*@C
39e5c89e4eSSatish Balay     PetscGetUserName - Returns the name of the user.
40e5c89e4eSSatish Balay 
41e5c89e4eSSatish Balay     Not Collective
42e5c89e4eSSatish Balay 
43e5c89e4eSSatish Balay     Input Parameter:
44e5c89e4eSSatish Balay     nlen - length of name
45e5c89e4eSSatish Balay 
46e5c89e4eSSatish Balay     Output Parameter:
47e5c89e4eSSatish Balay .   name - contains user name.  Must be long enough to hold the name
48e5c89e4eSSatish Balay 
49e5c89e4eSSatish Balay     Level: developer
50e5c89e4eSSatish Balay 
51e5c89e4eSSatish Balay     Concepts: user name
52e5c89e4eSSatish Balay 
53e5c89e4eSSatish Balay .seealso: PetscGetHostName()
54e5c89e4eSSatish Balay @*/
557087cfbeSBarry Smith PetscErrorCode  PetscGetUserName(char name[],size_t nlen)
56e5c89e4eSSatish Balay {
57*45082d64SJed Brown   const char     *user;
58e5c89e4eSSatish Balay   PetscErrorCode ierr;
59e5c89e4eSSatish Balay 
60e5c89e4eSSatish Balay   PetscFunctionBegin;
61*45082d64SJed Brown   user = getenv("USER");
62*45082d64SJed Brown   if (!user) user = "Unknown";
63*45082d64SJed Brown   ierr = PetscStrncpy(name,user,nlen);CHKERRQ(ierr);
64*45082d64SJed Brown   PetscFunctionReturn(0);
65*45082d64SJed Brown }
66ed74d47aSSatish Balay #endif
67