TUnixSystem


class description - source file - inheritance tree

class TUnixSystem : public TSystem


    protected:
virtual char* DynamicPathName(const char* lib, Bool_t quiet = kFALSE) void* FindDynLib(const char* lib) const char* GetDynamicPath() const int ReadUtmpFile() void* SearchUtmpEntry(int nentries, const char* tty) Func_t UnixDynFindSymbol(const char* lib, const char* entry) void UnixDynListLibs(const char* lib) void UnixDynListSymbols(const char* lib, const char* re) int UnixDynLoad(const char* lib) void UnixDynUnload(const char* lib) int UnixFilestat(const char* path, Long_t* id, Long_t* size, Long_t* flags, Long_t* modtime) const char* UnixGetdirentry(void* dir) const const char* UnixHomedirectory(const char* user = 0) const int UnixMakedir(const char* name) Long_t UnixNow() void* UnixOpendir(const char* name) int UnixRecv(int sock, void* buf, int len, int flag) int UnixSelect(UInt_t nfds, TFdSet* readready, TFdSet* writeready, Long_t timeout) int UnixSend(int sock, const void* buf, int len, int flag) int UnixSetitimer(Long_t ms) void UnixSignal(ESignals sig, SigHandler_t h) const char* UnixSigname(ESignals sig) const int UnixTcpConnect(const char* hostname, int port) int UnixTcpService(int port, Bool_t reuse, int backlog) int UnixUnixConnect(int port) int UnixUnixService(int port, int backlog) int UnixWaitchild() public:
TUnixSystem TUnixSystem(TUnixSystem&) TUnixSystem TUnixSystem() virtual void ~TUnixSystem() virtual void Abort(int code = 0) virtual int AcceptConnection(int sock) virtual Bool_t AccessPathName(const char* path, EAccessMode mode = kFileExists) virtual void AddFileHandler(TFileHandler* fh) virtual void AddSignalHandler(TSignalHandler* sh) virtual void AddTimer(TTimer* ti) virtual int AnnounceTcpService(int port, Bool_t reuse, int backlog) virtual int AnnounceUnixService(int port, int backlog) virtual Bool_t ChangeDirectory(const char* path) void CheckChilds() Bool_t CheckSignals(Bool_t sync) TClass* Class() virtual void CloseConnection(int sock) virtual void Closelog() virtual int ClosePipe(FILE* pipe) virtual char* ConcatFileName(const char* dir, const char* name) int ConnectService(const char* server, int port) virtual void DispatchOneEvent(Bool_t pendingOnly = kFALSE) void DispatchSignals(ESignals sig) Bool_t DispatchTimers(Bool_t mode) virtual Func_t DynFindSymbol(const char* module, const char* entry) virtual int Exec(const char* shellcmd) virtual void Exit(int code, Bool_t mode = kTRUE) virtual char* ExpandPathName(const char* path) virtual Bool_t ExpandPathName(TString& patbuf) virtual void FreeDirectory(void* dirp) virtual const char* GetDirEntry(void* dirp) const virtual const char* Getenv(const char* name) const virtual const char* GetError() const virtual TInetAddress GetHostByName(const char* server) virtual int GetPathInfo(const char* path, Long_t* id, Long_t* size, Long_t* flags, Long_t* modtime) virtual TInetAddress GetPeerName(int sock) virtual int GetPid() virtual int GetServiceByName(const char* service) virtual char* GetServiceByPort(int port) virtual TInetAddress GetSockName(int sock) virtual int GetSockOpt(int sock, int option, int* val) virtual const char* HomeDirectory(const Char_t* userName = 0) const virtual const char* HostName() const virtual void IgnoreInterrupt(Bool_t ignore = kTRUE) virtual Bool_t Init() virtual TClass* IsA() const virtual int Link(const char* from, const char* to) virtual void ListLibraries(const char* regexp) virtual void ListSymbols(const char* module, const char* re) virtual int Load(const char* module, const char* entry, Bool_t system = kFALSE) virtual int MakeDirectory(const char* name) virtual TTime Now() virtual int OpenConnection(const char* server, int port) virtual void* OpenDirectory(const char* name) virtual void Openlog(const char* name, Int_t options, ELogFacility facility) virtual FILE* OpenPipe(const char* shellcmd, const char* mode) virtual int RecvBuf(int sock, void* buffer, int length) virtual int RecvRaw(int sock, void* buffer, int length, int flag) virtual TFileHandler* RemoveFileHandler(TFileHandler* fh) virtual TSignalHandler* RemoveSignalHandler(TSignalHandler* sh) virtual TTimer* RemoveTimer(TTimer* ti) virtual void Rename(const char* from, const char* to) virtual void ResetTimer(TTimer* ti) virtual int SendBuf(int sock, const void* buffer, int length) virtual int SendRaw(int sock, const void* buffer, int length, int flag) virtual void SetDisplay() virtual void Setenv(const char* name, const char* value) virtual void SetProgname(const char* name) virtual int SetSockOpt(int sock, int option, int val) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Sleep(UInt_t milliSec) virtual void StackTrace() virtual void Streamer(TBuffer& b) virtual int Symlink(const char* from, const char* to) virtual void Syslog(ELogLevel level, const char* mess) virtual int Umask(Int_t mask) virtual int Unlink(const char* name) virtual void Unload(const char* module) virtual char* Which(const char* search, const char* file, EAccessMode mode = kFileExists) virtual const char* WorkingDirectory() const

Data Members


Class Description

                                                                      
 TUnixSystem                                                          
                                                                      
 Class providing an interface to the UNIX Operating System.           
                                                                      


TUnixSystem() : TSystem("Unix", "Unix System")

~TUnixSystem()

Bool_t Init()
 Initialize Unix system interface.

void SetProgname(const char *name)
 Set the application name (from command line, argv[0]) and copy it in
 gProgName. Copy the application pathname in gProgPath.

void SetDisplay()
 Set DISPLAY environment variable based on utmp entry. Only for UNIX.

const char* GetError()
 Return system error string.

const char* HostName()
 Return the system's host name.

void AddFileHandler(TFileHandler *h)
 Add a file handler to the list of system file handlers.

TFileHandler* RemoveFileHandler(TFileHandler *h)
 Remove a file handler from the list of file handlers.

void AddSignalHandler(TSignalHandler *h)
 Add a signal handler to list of system signal handlers.

TSignalHandler* RemoveSignalHandler(TSignalHandler *h)
 Remove a signal handler from list of signal handlers.

void IgnoreInterrupt(Bool_t ignore)
 Ignore the interrupt signal if ignore == kTRUE else restore previous
 behaviour. Typically call ignore interrupt before writing to disk.

void DispatchOneEvent(Bool_t pendingOnly)
 Dispatch a single event.

void Sleep(UInt_t milliSec)
 Sleep milliSec milliseconds.

void DispatchSignals(ESignals sig)
 Handle and dispatch signals.

Bool_t CheckSignals(Bool_t sync)
 Check if some signals were raised and call their Notify() member.

void CheckChilds()
 Check if childs have finished.

int MakeDirectory(const char *name)
 Make a Unix file system directory. Returns 0 in case of success and
 -1 if the directory could not be created.

void* OpenDirectory(const char *name)
 Open a Unix file system directory. Returns 0 if directory does not exist.

void FreeDirectory(void *dirp)
 Close a Unix file system directory.

const char* GetDirEntry(void *dirp)
 Get next Unix file system directory entry. Returns 0 if no more entries.

Bool_t ChangeDirectory(const char *path)
 Change directory. Returns kTRUE in case of success, kFALSE otherwise.

const char* WorkingDirectory()
 Return working directory.

const char* HomeDirectory(const Char_t *userName)
 Return the user's home directory.

char* ConcatFileName(const char *dir, const char *name)
 Concatenate a directory and a file name. Returned string must be
 deleted by user.

Bool_t AccessPathName(const char *path, EAccessMode mode)
 Returns FALSE if one can access a file using the specified access mode.
 Mode is the same as for the Unix access(2) function.

void Rename(const char *f, const char *t)
 Rename a file.

int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
 Get info about a file: id, size, flags, modification time.
 Id      is (statbuf.st_dev << 24) + statbuf.st_ino
 Size    is the file size
 Flags   is file type: bit 1 set executable, bit 2 set directory,
                       bit 3 set regular file
 Modtime is modification time

int Link(const char *from, const char *to)
 Create a link from file1 to file2. Returns 0 when successful,
 -1 in case of failure.

int Symlink(const char *from, const char *to)
 Create a symlink from file1 to file2. Returns 0 when succesfull,
 -1 in case of failure.

int Unlink(const char *name)
 Unlink, i.e. remove, a file or directory.

Bool_t ExpandPathName(TString &path)
 Expand a pathname getting rid of special shell characters like ~.$, etc.
 For Unix/Win32 compatibility use $(XXX) instead of $XXX when using
 environment variables in a pathname. If compatibility is not an issue
 you can use on Unix directly $XXX.

Bool_t ExpandPathName(TString &patbuf0)
 Expand a pathname getting rid of special shell characters like ~.$, etc.
 For Unix/Win32 compatibility use $(XXX) instead of $XXX when using
 environment variables in a pathname. If compatibility is not an issue
 you can use on Unix directly $XXX.

char* ExpandPathName(const char *path)
 Expand a pathname getting rid of special shell characaters like ~.$, etc.
 For Unix/Win32 compatibility use $(XXX) instead of $XXX when using
 environment variables in a pathname. If compatibility is not an issue
 you can use on Unix directly $XXX. The user must delete returned string.

int Umask(Int_t mask)
 Set the process file creation mode mask.

char* Which(const char *search, const char *file, EAccessMode mode)
 Find location of file in a search path.
 User must delete returned string.

void Setenv(const char *name, const char *value)
 Set environment variable. The string passed will be owned by
 the environment and can not be reused till a "name" is set
 again. The solution below will lose the space for the string
 in that case, but if this functions is not called thousands
 of times that should not be a problem.

const char* Getenv(const char *name)
 Get environment variable.

int Exec(const char *shellcmd)
 Execute a command.

FILE* OpenPipe(const char *command, const char *mode)
 Open a pipe.

int ClosePipe(FILE *pipe)
 Close the pipe.

int GetPid()
 Get process id.

void Exit(int code, Bool_t mode)
 Exit the application.

void Abort(int)
 Abort the application.

void StackTrace()
 Print a stack trace.

void Openlog(const char *name, Int_t options, ELogFacility facility)
 Open connection to system log daemon. For the use of the options and
 facility see the Unix openlog man page.

void Syslog(ELogLevel level, const char *mess)
 Send mess to syslog daemon. Level is the logging level and mess the
 message that will be written on the log.

void Closelog()
 Close connection to system log daemon.

Func_t DynFindSymbol(const char *module, const char *entry)

int Load(const char *module, const char *entry, Bool_t system)
 Load a shared library. Returns 0 on successful loading, 1 in
 case lib was already loaded and -1 in case lib does not exist
 or in case of error.

void Unload(const char *module)
 Unload a shared library.

void ListSymbols(const char *module, const char *regexp)
 List symbols in a shared library.

void ListLibraries(const char *regexp)
 List all loaded shared libraries.

TTime Now()
 Return current time.

Bool_t DispatchTimers(Bool_t mode)
 Handle and dispatch timers. If mode = kTRUE dispatch synchronous
 timers else a-synchronous timers.

void AddTimer(TTimer *ti)
 Add timer to list of system timers.

TTimer* RemoveTimer(TTimer *ti)
 Remove timer from list of system timers.

void ResetTimer(TTimer *ti)
 Reset a-sync timer.

TInetAddress GetHostByName(const char *hostname)
 Get Internet Protocol (IP) address of host.

TInetAddress GetSockName(int sock)
 Get Internet Protocol (IP) address of host and port #.

TInetAddress GetPeerName(int sock)
 Get Internet Protocol (IP) address of remote host and port #.

int GetServiceByName(const char *servicename)
 Get port # of internet service.

char* GetServiceByPort(int port)
 Get name of internet service.

int ConnectService(const char *servername, int port)
 Connect to service servicename on server servername.

int OpenConnection(const char *server, int port)
 Open a connection to a service on a server. Try 3 times with an
 interval of 1 second.

int AnnounceTcpService(int port, Bool_t reuse, int backlog)
 Announce TCP/IP service.

int AnnounceUnixService(int port, int backlog)
 Announce unix domain service.

int AcceptConnection(int sock)
 Accept a connection. In case of an error return -1. In case
 non-blocking I/O is enabled and no connections are available
 return -2.

void CloseConnection(int sock)
 Close socket.

int RecvBuf(int sock, void *buf, int length)
 Receive a buffer headed by a length indicator. Lenght is the size of
 the buffer. Returns the number of bytes received in buf or -1 in
 case of error.

int SendBuf(int sock, const void *buf, int length)
 Send a buffer headed by a length indicator. Returns length of sent buffer
 or -1 in case of error.

int RecvRaw(int sock, void *buf, int length, int opt)
 Receive exactly length bytes into buffer. Use opt to receive out-of-band
 data or to have a peek at what is in the buffer (see TSocket). Buffer
 must be able to store at least length bytes. Returns the number of
 bytes received (can be 0 if other side of connection was closed) or -1
 in case of error, -2 in case of MSG_OOB and errno == EWOULDBLOCK, -3
 in case of MSG_OOB and errno == EINVAL and -4 in case of kNoBlock and
 errno == EWOULDBLOCK.

int SendRaw(int sock, const void *buf, int length, int opt)
 Send exactly length bytes from buffer. Use opt to send out-of-band
 data (see TSocket). Returns the number of bytes sent or -1 in case of
 error.

int SetSockOpt(int sock, int opt, int val)
 Set socket option.

int GetSockOpt(int sock, int opt, int *val)
 Get socket option.

void UnixSignal(ESignals sig, SigHandler_t handler)
 Set a signal handler for a signal.

const char* UnixSigname(ESignals sig)
 Return the signal name associated with a signal.

Long_t UnixNow()
 Get current time in milliseconds since 0:00 Jan 1 1995.

int UnixSetitimer(Long_t ms)
 Set interval timer to time-out in ms milliseconds.

int UnixSelect(UInt_t nfds, TFdSet *readready, TFdSet *writeready, Long_t timeout)
 Wait for events on the file descriptors specified in the readready and
 writeready masks or for timeout (in milliseconds) to occur.

const char* UnixHomedirectory(const char *name)
 Returns the user's home directory.

int UnixMakedir(const char *dir)
 Make a Unix file system directory. Returns 0 in case of success and
 -1 if the directory could not be created.

void* UnixOpendir(const char *dir)
 Open a directory.

const char* UnixGetdirentry(void *dirp1)
 Returns the next directory entry.

int UnixFilestat(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
 Get info about a file: id, size, flags, modification time.
 Id      is (statbuf.st_dev << 24) + statbuf.st_ino
 Size    is the file size
 Flags   is file type: bit 0 set executable, bit 1 set directory,
                       bit 2 set regular file
 Modtime is modification time
 The function returns 0 in case of success and 1 if the file could
 not be stat'ed.

int UnixWaitchild()
 Wait till child is finished.

int UnixTcpConnect(const char *hostname, int port)
 Open a TCP/IP connection to server and connect to a service (i.e. port).
 Is called via the TSocket constructor.

int UnixUnixConnect(int port)
 Connect to a Unix domain socket.

int UnixTcpService(int port, Bool_t reuse, int backlog)
 Open a socket, bind to it and start listening for TCP/IP connections
 on the port. Returns socket fd or -1 if socket() failed, -2 if bind() failed
 or -3 if listen() failed.

int UnixUnixService(int port, int backlog)
 Open a socket, bind to it and start listening for Unix domain connections
 to it. Returns socket fd or -1.

int UnixRecv(int sock, void *buffer, int length, int flag)
 Receive exactly length bytes into buffer. Returns number of bytes
 received. Returns -1 in case of error, -2 in case of MSG_OOB
 and errno == EWOULDBLOCK, -3 in case of MSG_OOB and errno == EINVAL
 and -4 in case of kNoBlock and errno == EWOULDBLOCK.

int UnixSend(int sock, const void *buffer, int length, int flag)
 Send exactly length bytes from buffer. Returns -1 in case of error,
 otherwise number of sent bytes.

const char* GetDynamicPath()
 Get shared library search path. Static utility function.

char* DynamicPathName(const char *lib, Bool_t quiet)
 Returns the path of a shared library (searches for library in the
 shared library search path). If no file name extension is provided
 it first tries .so, .sl, .dl and then .a (for AIX). The returned string
 must be deleted.

void* FindDynLib(const char *lib)
 Returns the handle to a loaded shared library. Returns 0 when library
 not loaded.

int UnixDynLoad(const char *lib)
 Load a shared library. Returns 0 on successful loading, 1 in
 case lib was already loaded and -1 in case lib does not exist
 or in case of error.

Func_t UnixDynFindSymbol(const char *lib, const char *entry)
 Finds and returns a function pointer to a symbol in the shared library.
 Returns 0 when symbol not found.

void UnixDynListSymbols(const char *lib, const char *regexp)
 List symbols in a shared library. One can use wildcards to list only
 the intresting symbols.

void UnixDynListLibs(const char *lib)
 List all loaded shared libraries.

void UnixDynUnload(const char *lib)
 Unload a shared library.

int ReadUtmpFile()
 Read utmp file. Returns number of entries in utmp file.

void* SearchUtmpEntry(int n, const char *tty)
 Look for utmp entry which is connected to terminal tty.



Inline Functions


            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
        TUnixSystem TUnixSystem(TUnixSystem&)


Author: Fons Rademakers 15/09/95
Last update: 2.23/08 28/10/99 00.49.36 by Fons Rademakers
Copyright (c) 1995-1999, The ROOT System, All rights reserved. *


ROOT page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.