ucommon
Public Types | Public Member Functions | Static Public Attributes
ucommon::file Class Reference

Access standard files through character protocol. More...

#include <file.h>

Inheritance diagram for ucommon::file:
Inheritance graph
[legend]
Collaboration diagram for ucommon::file:
Collaboration graph
[legend]

Public Types

typedef ::fpos_t bookmark_t

Public Member Functions

size_t __isoc99_scanf (const char *format,...)
void append (void)
int cancel (void)
 Cancel pipe and close file.
void clear (void)
 Clear error state.
int close (void)
 Close an open file.
bool eof (void) const
int err (void) const
 file (FILE *file)
 Construct a file from an existing FILE pointer.
 file (const char *path, const char *mode, size_t size=2)
 Construct an open file based on a path and mode.
 file (const char *path, char **argv, const char *mode, char **envp=((void *) 0))
 Construct an open file based on a pipe.
 file ()
 Construct an unopened file.
void flush (void)
size_t get (void *data, size_t size)
int get (void)
void get (bookmark_t &pos)
char * gets (char *data, size_t size)
bool good (void)
 Check if file is good, no error or eof...
bool is_tty (void) const
void move (long offset)
template<typename T >
void offset (long pos)
void open (const char *path, const char *mode, size_t size=2)
 Open file path.
void open (const char *path, char **argv, const char *mode, char **envp=((void *) 0))
 Open an executable path.
 operator bool ()
 Test if file is opened.
 operator FILE * ()
bool operator! ()
 Test if file is not opened.
size_t printf (const char *format,...)
int push (char value)
size_t put (const void *data, size_t size)
int put (char value)
int puts (const char *data)
template<typename T >
size_t read (T *data, size_t count)
template<typename T >
size_t read (T &data)
void rewind (void)
void seek (long offset)
void set (bookmark_t &pos)
template<typename T >
size_t write (const T *data, size_t count)
template<typename T >
size_t write (const T &data)
 ~file ()
 Destroy object and close associated file.

Static Public Attributes

static file cerr
static file cin
static file cout

Detailed Description

Access standard files through character protocol.

This can also be used as an alternative means to access files that manages file pointers.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 59 of file file.h.


Constructor & Destructor Documentation

ucommon::file::file ( FILE *  file)

Construct a file from an existing FILE pointer.

Parameters:
fileto use.
ucommon::file::file ( const char *  path,
const char *  mode,
size_t  size = 2 
)

Construct an open file based on a path and mode.

Parameters:
pathof file to open.
modeof file.
sizeof buffer, 0 = none, 1 = line mode, 2 = default
ucommon::file::file ( const char *  path,
char **  argv,
const char *  mode,
char **  envp = ((void *) 0) 
)

Construct an open file based on a pipe.

Parameters:
pathof file to pipe.
argvof executable.
modeof file.
envpto give executable.

Member Function Documentation

int ucommon::file::cancel ( void  )

Cancel pipe and close file.

Returns:
process exit code if pipe.
int ucommon::file::close ( void  )

Close an open file.

Returns:
process exit code if pipe.
bool ucommon::file::good ( void  )

Check if file is good, no error or eof...

Returns:
bool if file stream is good.
void ucommon::file::open ( const char *  path,
const char *  mode,
size_t  size = 2 
)

Open file path.

If a file is already opened, it is closed.

Parameters:
pathof file to open.
modeof file to open.
sizeof buffering, 0 = none, 1 = line mode.
void ucommon::file::open ( const char *  path,
char **  argv,
const char *  mode,
char **  envp = ((void *) 0) 
)

Open an executable path.

Parameters:
pathof executable.
argvto pass to executable.
modeof pipe (only "r" and "w" are valid).
ucommon::file::operator bool ( ) [inline]

Test if file is opened.

Returns:
true if opened.

Definition at line 118 of file file.h.

bool ucommon::file::operator! ( ) [inline]

Test if file is not opened.

Returns:
true if not opened.

Definition at line 125 of file file.h.


The documentation for this class was generated from the following file: