/sys$common/syshlp/helplib.hlb
CXXLSTD, IOStreams, basic_ofstream

 *Conan The Librarian

 			   Standard C++	Library
 		 Copyright 1996, Rogue Wave Software, Inc.

 NAME

   basic_ofstream,ofstream

   This page describes the ANSI	basic_ofstream class.  If you would
   like information on the pre-ANSI ofstream class, use the command:

        help cxxl

 SYNOPSIS

   #include <fstream>
   template<class charT,	class traits = char_traits<charT> >
   class	basic_ofstream
   : public basic_ostream<charT,	traits>

 DESCRIPTION

   The template class basic_ofstream<charT,traits> supports writing
   into	named files	or other devices associated with a file
   descriptor. It uses a basic_filebuf	object to control the
   associated sequences. It inherits	from basic_ostream	and
   can	therefore use all the formatted	and unformatted	output
   functions.

 INTERFACE

   template<class charT,	class traits = char_traits<charT> >
   class	basic_ofstream
   : public basic_ostream<charT,	traits>	{

   public:

    typedef basic_ios<charT, traits>    ios_type;

    typedef charT		       char_type;
    typedef traits		       traits_type;
    typedef typename traits::int_type   int_type;
    typedef typename traits::pos_type   pos_type;
    typedef typename traits::off_type   off_type;

    basic_ofstream();

    explicit basic_ofstream(const char *s,
 			   ios_base::openmode mode =
 			   ios_base::out,
 			   long	protection = 0666);

    explicit basic_ofstream(int fd);

    basic_ofstream(int fd, char_type* buf, int len);

    virtual ~basic_ofstream();

    basic_filebuf<charT,	traits>	*rdbuf() const;

    bool	is_open();

    void	open(const char	*s, ios_base::openmode mode =
 	     ios_type::out, long protection = 0666);

    void	close();

   };

 TYPES

   char_type
      The type char_type	is a synonym for the template parameter	charT.

   off_type
      The type off_type is a synonym of type traits::off_type.

   ofstream
      The type ofstream is an instantiation of  class basic_ofstream on
      type char:

        typedef basic_ofstream<char> ofstream;

   int_type
      The type int_type is a synonym of type traits::in_type.

   ios_type
      The type ios_type is an instantiation of class basic_ios on type
      charT.

   pos_type
      The type pos_type is a synonym of type traits::pos_type.

   traits_type
      The type traits_type is a synonym for the template	parameter traits.

   wofstream
      The type wofstream	is an instantiation of class basic_ofstream on
      type wchar_t:

        typedef basic_ofstream<wchar_t> wofstream;

 CONSTRUCTORS

   basic_ofstream();
      Constructs	an object of class basic_ofstream<charT,traits>,
      initializing the base class basic_ostream with the associated
      file buffer, which is initialized by calling the	basic_filebuf
      constructor basic_filebuf<charT,traits>(). After construction a
      file can be attached to	the basic_oftream object using the
      open	member function.

   basic_ofstream(const char* s,
 		ios_base::openmode mode= ios_base::in,
 		long protection= 0666);
 	Constructs an object	of class
 	basic_ofstream<charT,traits>,  initializing the base	class
 	basic_ostream with the associated file buffer, which	is
 	initialized by calling the basic_filebuf constructor
 	basic_filebuf<charT,traits>(). The constructor then calls
 	the open function open(s,mode,protection) in	order to
 	attach the file whose name is pointed at by s, to the
 	basic_oftream object. The third argument, protection, is
 	used	as the file permissions. It does not appear in the
 	Standard C++	description and	is provided as an extension.
 	It determines the file read/write/execute permissions
 	under UNIX.	It is more limited under DOS since files are
 	always readable and do not have special execute permission.

    explicit basic_ofstream(int fd);
      Constructs	an object of class basic_ofstream<charT,traits>,
      initializing the base class	basic_ostream with the
      associated file buffer, which is	initialized by calling the
      basic_filebuf constructor basic_filebuf<charT,traits>(). The
      constructor then calls the basic_filebuf open	function
      open(fd) in order to attach the file descriptor	fd to the
      basic_oftream	 object. This constructor is not described in
      the C++ standard, and	is provided as an extension in order
      to	manipulate pipes, sockets or other UNIX	devices, that can be
      accessed through file descriptors. If the function fails, it sets
      ios_base::failbit.

   basic_ofstream(int fd, char_type* buf,int len);
      Constructs	an object of class basic_ofstream<charT,traits>,
      initializing the base class	basic_ostream with the
      associated file buffer, which is	initialized by calling the
      basic_filebuf constructor basic_filebuf<charT,traits>(). The
      constructor then calls the basic_filebuf open	function
      open(fd) in order to attach the file descriptor	fd to the
      basic_oftream	 object. The underlying	buffer is then
      replaced by calling the basic_filebuf	member function	setbuf
      with parameters	buf and	len. This constructor is not described
      in the C++ standard, and is provided as an extension in order
      to manipulate pipes, sockets or	other UNIX devices, that can
      be	accessed through file descriptors. It also maintains
      compatibility with the old iostreams library. If the function
      fails, it	sets ios_base::failbit.

 DESTRUCTOR

   virtual ~basic_ofstream();
      Destroys an object	of class basic_ofstream.

 MEMBER FUNCTIONS

   void
   close();
      Calls the associated basic_filebuf	function close() and if	this
      function fails, it calls the basic_ios member function
      setstate(failbit).

   bool
   is_open();
      Calls the associated basic_filebuf	function is_open() and return
      its result.

   void
   open(const char* s,ios_base::openmode	=
  	   ios_base::out, long protection = 0666);
       Calls the	associated basic_filebuf function
       open(s,mode,protection) and, if this function fails opening the
       file, calls the basic_ios	member function	setstate(failbit).
       The third	argument, protection, is used as the file permis-
       sions. It	does not appear	in the Standard	C++ description	and
       is provided as an	extension. It determines the file
       read/write/execute permissions under UNIX, and is	more limited
       under DOS	since files are	always readable	and do not have	special
       execute permission.

   basic_filebuf<charT,traits>*
   rdbuf() const;
      Returns a pointer to the basic_filebuf associated with the	stream.

 EXAMPLES

   See basic_fstream, basic_ifstream and	basic_filebuf examples.

 SEE ALSO

   char_traits,	ios_base, basic_ios,
   basic_filebuf, basic_ifstream, basic_fstream

   Working Paper	for Draft Proposed International Standard for Information
   Systems--Programming Language	C++, Section 27.8.1.8

 STANDARDS CONFORMANCE
   ANSI X3J16/ISO WG21 Joint C++	Committee
  Close     Help