Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TWinNTSystem.h
Go to the documentation of this file.
1// @(#)root/winnt:$Id$
2// Author: Fons Rademakers 15/09/95
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12
13#ifndef ROOT_TWinNTSystem
14#define ROOT_TWinNTSystem
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TWinNTSystem //
19// //
20// Class providing an interface to the Windows NT Operating System. //
21// //
22//////////////////////////////////////////////////////////////////////////
23
24#include "TSystem.h"
25#include <string>
26
27#include "Windows4Root.h"
28#include <commctrl.h>
29
30#ifndef MAX_SID_SIZE
31#define MAX_SID_SIZE 1024
32#endif
33#define MAX_NAME_STRING 1024
34
35#define SID_GROUP 0
36#define SID_MEMBER 1
37
38struct passwd {
39 char *pw_name; // user name
40 char *pw_passwd; // user password
41 int pw_uid; // user ID
42 int pw_gid; // user's group ID
43 int pw_quota; //
44 char *pw_gecos; // user's real (long) name
45 char *pw_dir; // user home directory
46 char *pw_shell; // shell command
47 char *pw_group; // user's group name
48};
49
50struct group {
51 char *gr_name; // group name
52 char *gr_passwd; // group password
53 int gr_gid; // group id
54 char **gr_mem; // group members
55};
56
57
58class TWinNTSystem : public TSystem {
59public:
60 // pointer to message handler func
61 typedef Bool_t (*ThreadMsgFunc_t)(MSG*);
62
63private:
64 struct group *fGroups{nullptr}; // Groups on local computer
65 struct passwd *fPasswords{nullptr}; // Users on local computer
66 int fNbUsers{0}; // Number of users on local computer
67 int fNbGroups{0}; // Number of groups on local computer
68 int fActUser{-1}; // Index of actual user in User list
69 Bool_t fGroupsInitDone{kFALSE}; // Flag used for Users and Groups initialization
70
71 HANDLE fhProcess; // Handle of the current process
72 void *fGUIThreadHandle{nullptr}; // handle of GUI server (aka command) thread
73 ULong_t fGUIThreadId{0}; // id of GUI server (aka command) thread
74 std::string fDirNameBuffer; // The string buffer to hold path name
75
79 Bool_t CountMembers(const char *lpszGroupName);
80 const char *GetLinkedLibraries() override;
82 Long_t LookupSID (const char *lpszAccountName, int what, int &groupIdx, int &memberIdx);
83 Bool_t CollectMembers(const char *lpszGroupName, int &groupIdx, int &memberIdx);
86 void DoBeep(Int_t freq=-1, Int_t duration=-1) const override;
87
88 static void ThreadStub(void *Parameter) {((TWinNTSystem *)Parameter)->TimerThread();}
89 void TimerThread();
90 void FillWithHomeDirectory(const char *userName, char *mydir) const;
91 char *GetWorkingDirectory(char driveletter) const;
92
93
94protected:
95 static int WinNTUnixConnect(int port);
96 static int WinNTUnixConnect(const char *path);
97 static int WinNTUdpConnect(const char *hostname, int port);
98
99public:
100 TWinNTSystem();
101 virtual ~TWinNTSystem();
102
103 //---- non-TSystem methods ----------------------------------
104 HANDLE GetProcess();
106
107 //---- Misc -------------------------------------------------
108 Bool_t Init() override;
109 const char *BaseName(const char *name) override;
110 void SetProgname(const char *name) override;
111 const char *GetError() override;
112 Int_t GetCryptoRandom(void *buf, Int_t len) override;
113 const char *HostName() override;
114 void *GetGUIThreadHandle() const {return fGUIThreadHandle;}
117 void NotifyApplicationCreated() override;
118
119
120 //---- EventLoop --------------------------------------------
121 Bool_t ProcessEvents() override;
122 void DispatchOneEvent(Bool_t pendingOnly = kFALSE) override;
123 void ExitLoop() override;
124 Int_t Select(TList *active, Long_t timeout) override;
125 Int_t Select(TFileHandler *fh, Long_t timeout) override;
126
127 //---- Handling of system events ----------------------------
128 void DispatchSignals(ESignals sig);
129 void AddSignalHandler(TSignalHandler *sh) override;
131 void ResetSignal(ESignals sig, Bool_t reset = kTRUE) override;
132 void ResetSignals() override;
133 void IgnoreSignal(ESignals sig, Bool_t ignore = kTRUE) override;
134 void AddFileHandler(TFileHandler *fh) override;
136 void StackTrace() override;
137
138 //---- Floating Point Exceptions Control --------------------
139 Int_t GetFPEMask() override;
141
142 //---- Processes --------------------------------------------
143 int Exec(const char *shellcmd) override;
144 FILE *OpenPipe(const char *shellcmd, const char *mode) override;
145 int ClosePipe(FILE *pipe) override;
146 int GetPid() override;
147
148 [[ noreturn ]] void Exit (int code, Bool_t mode = kTRUE) override;
149 [[ noreturn ]] void Abort (int code = 0) override;
150
151 //---- Environment manipulation -----------------------------
152 const char *Getenv(const char *name) override;
153 void Setenv(const char *name, const char *value) override;
154
155 //---- Directories ------------------------------------------
156 int mkdir(const char *name, Bool_t recursive = kFALSE) override;
157 int MakeDirectory(const char *name) override;
158 Bool_t ChangeDirectory(const char *path) override;
159 const char *GetDirEntry(void *dirp) override;
160 const char *DirName(const char *pathname) override;
161 TString GetDirName(const char *pathname) override;
162 void FreeDirectory(void *dirp) override;
163 void *OpenDirectory(const char *name) override;
164 const char *WorkingDirectory(char driveletter);
165 const char *WorkingDirectory() override;
166 std::string GetWorkingDirectory() const override;
167 const char *HomeDirectory(const char *userName=0) override;
168 std::string GetHomeDirectory(const char *userName = nullptr) const override;
169 const char *TempDirectory() const override;
170 FILE *TempFileName(TString &base, const char *dir = nullptr, const char *suffix = nullptr) override;
171
172 //---- Users & Groups ---------------------------------------
173 Int_t GetUid(const char *user = nullptr) override;
174 Int_t GetGid(const char *group = nullptr) override;
175 Int_t GetEffectiveUid() override;
176 Int_t GetEffectiveGid() override;
177 UserGroup_t *GetUserInfo(Int_t uid) override;
178 UserGroup_t *GetUserInfo(const char *user = nullptr) override;
179 UserGroup_t *GetGroupInfo(Int_t gid) override;
180 UserGroup_t *GetGroupInfo(const char *group = nullptr) override;
181
182 //---- Paths & Files ----------------------------------------
183 const char DriveName(const char *pathname="/");
184 const char *PrependPathName(const char *dir, TString& name) override;
185 Bool_t ExpandPathName(TString &patbuf) override;
186 char *ExpandPathName(const char *path) override;
187 Bool_t AccessPathName(const char *path, EAccessMode mode = kFileExists) override;
188 Bool_t IsPathLocal(const char *path) override;
189 Bool_t IsAbsoluteFileName(const char *dir) override;
190 int CopyFile(const char *from, const char *to, Bool_t overwrite = kFALSE) override;
191 int Rename(const char *from, const char *to) override;
192 int Link(const char *from, const char *to) override;
193 int Symlink(const char *from, const char *to) override;
194 int Unlink(const char *name) override;
195 int SetNonBlock(int fd);
196 int GetPathInfo(const char *path, FileStat_t &buf) override;
197 int GetFsInfo(const char *path, Long_t *id, Long_t *bsize,
198 Long_t *blocks, Long_t *bfree) override;
199 int Chmod(const char *file, UInt_t mode) override;
200 int Umask(Int_t mask) override;
201 int Utime(const char *file, Long_t modtime, Long_t actime) override;
202 const char *UnixPathName(const char *unixpathname) override;
203 const char *FindFile(const char *search, TString& file, EAccessMode mode = kFileExists) override;
204 TList *GetVolumes(Option_t *opt = "") const override;
205
206 //---- Standard Output redirection --------------------------
207 Int_t RedirectOutput(const char *name, const char *mode = "a", RedirectHandle_t *h = nullptr) override;
208
209 //---- Dynamic Loading --------------------------------------
210 void AddDynamicPath(const char *dir) override;
211 const char *GetDynamicPath() override;
212 void SetDynamicPath(const char *path) override;
213 const char *FindDynamicLibrary(TString &lib, Bool_t quiet = kFALSE) override;
214 int Load(const char *module, const char *entry = "", Bool_t system = kFALSE) override;
215 const char *GetLibraries(const char *regexp = "",
216 const char *option = "",
217 Bool_t isRegexp = kTRUE) override;
218
219 //---- Time & Date -------------------------------------------
220 TTime Now() override;
221 void AddTimer(TTimer *ti) override;
222 TTimer *RemoveTimer(TTimer *ti) override;
223 void Sleep(UInt_t milliSec) override;
226
227 //---- RPC --------------------------------------------------
228 int ConnectService(const char *servername, int port, int tcpwindowsize, const char *protocol = "tcp");
229 TInetAddress GetHostByName(const char *server) override;
230 TInetAddress GetPeerName(int sock) override;
231 TInetAddress GetSockName(int sock) override;
232 int GetServiceByName(const char *service) override;
233 char *GetServiceByPort(int port) override;
234 int OpenConnection(const char *server, int port, int tcpwindowsize = -1, const char *protocol = "tcp") override;
235 int AnnounceTcpService(int port, Bool_t reuse, int backlog, int tcpwindowsize = -1) override;
236 int AnnounceUdpService(int port, int backlog) override;
237 int AnnounceUnixService(int port, int backlog) override;
238 int AnnounceUnixService(const char *sockpath, int backlog) override;
239 int AcceptConnection(int sock) override;
240 void CloseConnection(int sock, Bool_t force = kFALSE) override;
241 int RecvRaw(int sock, void *buffer, int length, int flag) override;
242 int SendRaw(int sock, const void *buffer, int length, int flag) override;
243 int RecvBuf(int sock, void *buffer, int length) override;
244 int SendBuf(int sock, const void *buffer, int length) override;
245 int SetSockOpt(int sock, int opt, int val) override;
246 int GetSockOpt(int sock, int opt, int *val) override;
247
248 //---- System, CPU and Memory info
249 Int_t GetSysInfo(SysInfo_t *info) const override;
250 Int_t GetCpuInfo(CpuInfo_t *info, Int_t sampleTime = 1000) const override;
251 Int_t GetMemInfo(MemInfo_t *info) const override;
252 Int_t GetProcInfo(ProcInfo_t *info) const override;
253
255};
256
257R__EXTERN ULongptr_t gConsoleWindow; // console window handle
258
259#endif
#define R__EXTERN
Definition DllImport.h:26
#define h(i)
Definition RSha256.hxx:106
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
unsigned long ULong_t
Definition RtypesCore.h:55
long Long_t
Definition RtypesCore.h:54
unsigned int UInt_t
Definition RtypesCore.h:46
unsigned long ULongptr_t
Definition RtypesCore.h:83
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
double Double_t
Definition RtypesCore.h:59
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t option
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t mask
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h length
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char mode
char name[80]
Definition TGX11.cxx:110
ESignals
EAccessMode
Definition TSystem.h:41
@ kFileExists
Definition TSystem.h:42
@ kDefaultMask
Definition TSystem.h:82
R__EXTERN ULongptr_t gConsoleWindow
This class represents an Internet Protocol (IP) address.
A doubly linked list.
Definition TList.h:38
Basic string class.
Definition TString.h:139
Abstract base class defining a generic interface to the underlying Operating System.
Definition TSystem.h:260
Basic time type with millisecond precision.
Definition TTime.h:27
Handles synchronous and a-synchronous timer events.
Definition TTimer.h:51
void CloseConnection(int sock, Bool_t force=kFALSE) override
Close socket.
TList * GetVolumes(Option_t *opt="") const override
Get list of volumes (drives) mounted on the system.
FILE * OpenPipe(const char *shellcmd, const char *mode) override
Open a pipe.
void IgnoreSignal(ESignals sig, Bool_t ignore=kTRUE) override
If ignore is true ignore the specified signal, else restore previous behaviour.
Bool_t HandleConsoleEvent()
int Utime(const char *file, Long_t modtime, Long_t actime) override
Set a files modification and access times.
void Sleep(UInt_t milliSec) override
Sleep milliSec milli seconds.
TTime Now() override
Get current time in milliseconds since 0:00 Jan 1 1995.
const char * HostName() override
Return the system's host name.
virtual ~TWinNTSystem()
dtor
FILE * TempFileName(TString &base, const char *dir=nullptr, const char *suffix=nullptr) override
Create a secure temporary file by appending a unique 6 letter string to base.
void ExitLoop() override
Exit from event loop.
int SetNonBlock(int fd)
Make descriptor fd non-blocking.
int AnnounceUnixService(int port, int backlog) override
Announce unix domain service.
const char * GetLinkedLibraries() override
Get list of shared libraries loaded at the start of the executable.
void AddSignalHandler(TSignalHandler *sh) override
Add a signal handler to list of system signal handlers.
const char * PrependPathName(const char *dir, TString &name) override
Concatenate a directory and a file name.
void SetGUIThreadMsgHandler(ThreadMsgFunc_t func)
Set the (static part of) the event handler func for GUI messages.
Bool_t ProcessEvents() override
process pending events, i.e. DispatchOneEvent(kTRUE)
const char DriveName(const char *pathname="/")
Return the drive letter in pathname.
Bool_t CollectGroups()
int SetSockOpt(int sock, int opt, int val) override
Set socket option.
struct passwd * fPasswords
Int_t GetCpuInfo(CpuInfo_t *info, Int_t sampleTime=1000) const override
Returns cpu load average and load info into the CpuInfo_t structure.
Int_t SetFPEMask(Int_t mask=kDefaultMask) override
Set which conditions trigger a floating point exception.
int GetPathInfo(const char *path, FileStat_t &buf) override
Get info about a file.
static void ThreadStub(void *Parameter)
void FreeDirectory(void *dirp) override
Close a WinNT file system directory.
static int WinNTUdpConnect(const char *hostname, int port)
Creates a UDP socket connection Is called via the TSocket constructor.
Int_t GetSysInfo(SysInfo_t *info) const override
Returns static system info, like OS type, CPU type, number of CPUs RAM size, etc into the SysInfo_t s...
void * OpenDirectory(const char *name) override
Open a directory. Returns 0 if directory does not exist.
HANDLE fhProcess
int AnnounceTcpService(int port, Bool_t reuse, int backlog, int tcpwindowsize=-1) override
Announce TCP/IP service.
const char * Getenv(const char *name) override
Get environment variable.
UserGroup_t * GetGroupInfo(Int_t gid) override
Returns all group info in the UserGroup_t structure.
void AddTimer(TTimer *ti) override
Add timer to list of system timers.
int RecvBuf(int sock, void *buffer, int length) override
Receive a buffer headed by a length indicator.
void DoBeep(Int_t freq=-1, Int_t duration=-1) const override
Beep.
void TimerThread()
Special Thread to check asynchronous timers.
const char * GetDynamicPath() override
Return the dynamic path (used to find shared libraries).
Bool_t ExpandPathName(TString &patbuf) override
Expand a pathname getting rid of special shell characaters like ~.$, etc.
int GetServiceByName(const char *service) override
Get port # of internet service.
int OpenConnection(const char *server, int port, int tcpwindowsize=-1, const char *protocol="tcp") override
Open a connection to a service on a server.
int ConnectService(const char *servername, int port, int tcpwindowsize, const char *protocol="tcp")
Connect to service servicename on server servername.
TString GetDirName(const char *pathname) override
Return the directory name in pathname.
int SendRaw(int sock, const void *buffer, int length, int flag) override
Send exactly length bytes from buffer.
const char * TempDirectory() const override
Return a user configured or systemwide directory to create temporary files in.
void DispatchSignals(ESignals sig)
Handle and dispatch signals.
int AnnounceUdpService(int port, int backlog) override
Announce UDP service.
int Exec(const char *shellcmd) override
Execute a command.
Long_t LookupSID(const char *lpszAccountName, int what, int &groupIdx, int &memberIdx)
Take the name and look up a SID so that we can get full domain/user information.
Int_t GetEffectiveUid() override
Returns the effective user id.
void NotifyApplicationCreated() override
Hook to tell TSystem that the TApplication object has been created.
void Abort(int code=0) override
Abort the application.
struct group * fGroups
Int_t Select(TList *active, Long_t timeout) override
Select on file descriptors. The timeout to is in millisec.
Int_t GetMemInfo(MemInfo_t *info) const override
Returns ram and swap memory usage info into the MemInfo_t structure.
Bool_t GetNbGroups()
Int_t GetProcInfo(ProcInfo_t *info) const override
Returns cpu and memory used by this process into the ProcInfo_t structure.
TFileHandler * RemoveFileHandler(TFileHandler *fh) override
Remove a file handler from the list of file handlers.
Bool_t DispatchTimers(Bool_t mode)
Handle and dispatch timers.
const char * DirName(const char *pathname) override
Return the directory name in pathname.
Bool_t IsPathLocal(const char *path) override
Returns TRUE if the url in 'path' points to the local file system.
int SendBuf(int sock, const void *buffer, int length) override
Send a buffer headed by a length indicator.
ULong_t GetGUIThreadId() const
TInetAddress GetHostByName(const char *server) override
Get Internet Protocol (IP) address of host.
Bool_t ChangeDirectory(const char *path) override
Change directory.
int AcceptConnection(int sock) override
Accept a connection.
int GetPid() override
Get process id.
const char * WorkingDirectory() override
Return the working directory for the default drive.
void SetProgname(const char *name) override
Set the application name (from command line, argv[0]) and copy it in gProgName.
int GetSockOpt(int sock, int opt, int *val) override
Get socket option.
int GetFsInfo(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree) override
Get info about a file system: id, bsize, bfree, blocks.
int CopyFile(const char *from, const char *to, Bool_t overwrite=kFALSE) override
Copy a file.
Int_t RedirectOutput(const char *name, const char *mode="a", RedirectHandle_t *h=nullptr) override
Redirect standard output (stdout, stderr) to the specified file.
Bool_t IsAbsoluteFileName(const char *dir) override
Return true if dir is an absolute pathname.
Double_t GetRealTime()
int mkdir(const char *name, Bool_t recursive=kFALSE) override
Make a file system directory.
const char * UnixPathName(const char *unixpathname) override
Convert a pathname to a unix pathname.
Bool_t CheckSignals(Bool_t sync)
Check if some signals were raised and call their Notify() member.
int Symlink(const char *from, const char *to) override
Create a symlink from file1 to file2.
void DispatchOneEvent(Bool_t pendingOnly=kFALSE) override
Dispatch a single event in TApplication::Run() loop.
int Load(const char *module, const char *entry="", Bool_t system=kFALSE) override
Load a shared library.
Double_t GetCPUTime()
TSignalHandler * RemoveSignalHandler(TSignalHandler *sh) override
Remove a signal handler from list of signal handlers.
const char * GetError() override
Return system error string.
void StackTrace() override
Print a stack trace, if gEnv entry "Root.Stacktrace" is unset or 1, and if the image helper functions...
int Unlink(const char *name) override
Unlink, i.e.
void ResetSignals() override
Reset signals handlers to previous behaviour.
int RecvRaw(int sock, void *buffer, int length, int flag) override
Receive exactly length bytes into buffer.
const char * BaseName(const char *name) override
Base name of a file name.
TTimer * RemoveTimer(TTimer *ti) override
Remove timer from list of system timers.
void Exit(int code, Bool_t mode=kTRUE) override
Exit the application.
void AddDynamicPath(const char *dir) override
Add a new directory to the dynamic path.
int Umask(Int_t mask) override
Set the process file creation mode mask.
void AddFileHandler(TFileHandler *fh) override
Add a file handler to the list of system file handlers.
std::string fDirNameBuffer
Bool_t CheckDescriptors()
Check if there is activity on some file descriptors and call their Notify() member.
static int WinNTUnixConnect(int port)
Connect to a Unix domain socket.
int Chmod(const char *file, UInt_t mode) override
Set the file permission bits.
Bool_t Init() override
Initialize WinNT system interface.
const char * GetDirEntry(void *dirp) override
Returns the next directory entry.
TInetAddress GetSockName(int sock) override
Get Internet Protocol (IP) address of host and port #.
Bool_t(* ThreadMsgFunc_t)(MSG *)
TInetAddress GetPeerName(int sock) override
Get Internet Protocol (IP) address of remote host and port #.
Int_t GetUid(const char *user=nullptr) override
Returns the user's id. If user = 0, returns current user's id.
const char * FindFile(const char *search, TString &file, EAccessMode mode=kFileExists) override
Find location of file in a search path.
const char * FindDynamicLibrary(TString &lib, Bool_t quiet=kFALSE) override
Returns and updates sLib to the path of a dynamic library (searches for library in the dynamic librar...
void ResetSignal(ESignals sig, Bool_t reset=kTRUE) override
If reset is true reset the signal handler for the specified signal to the default handler,...
Bool_t CollectMembers(const char *lpszGroupName, int &groupIdx, int &memberIdx)
Bool_t CountMembers(const char *lpszGroupName)
std::string GetHomeDirectory(const char *userName=nullptr) const override
Return the user's home directory.
Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists) override
Returns FALSE if one can access a file using the specified access mode.
void FillWithHomeDirectory(const char *userName, char *mydir) const
Fill buffer with user's home directory.
char * GetServiceByPort(int port) override
Get name of internet service.
Bool_t InitUsersGroups()
Collect local users and groups accounts information.
Int_t GetGid(const char *group=nullptr) override
Returns the group's id. If group = 0, returns current user's group.
const char * HomeDirectory(const char *userName=0) override
Return the user's home directory.
Int_t GetEffectiveGid() override
Returns the effective group id.
void * fGUIThreadHandle
void Setenv(const char *name, const char *value) override
Set environment variable.
void SetDynamicPath(const char *path) override
Set the dynamic path to a new value.
Bool_t fGroupsInitDone
std::string GetWorkingDirectory() const override
Return the working directory for the default drive.
HANDLE GetProcess()
Get current process handle.
UserGroup_t * GetUserInfo(Int_t uid) override
Returns all user info in the UserGroup_t structure.
int Rename(const char *from, const char *to) override
Rename a file. Returns 0 when successful, -1 in case of failure.
ULong_t fGUIThreadId
int MakeDirectory(const char *name) override
Make a WinNT file system directory.
int Link(const char *from, const char *to) override
Create a link from file1 to file2.
const char * GetLibraries(const char *regexp="", const char *option="", Bool_t isRegexp=kTRUE) override
Return a space separated list of loaded shared libraries.
int ClosePipe(FILE *pipe) override
Close the pipe.
void * GetGUIThreadHandle() const
Int_t GetFPEMask() override
Return the bitmap of conditions that trigger a floating point exception.
Int_t GetCryptoRandom(void *buf, Int_t len) override
Return cryptographic random number Fill provided buffer with random values Returns number of bytes wr...
static const char * what
Definition stlLoader.cc:5
char ** gr_mem
int gr_gid
char * gr_passwd
char * gr_name
int pw_gid
int pw_uid
int pw_quota
char * pw_name
char * pw_gecos
char * pw_passwd
char * pw_shell
char * pw_group
char * pw_dir