Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. // Wrapper of C-language FILE struct -*- C++ -*-
  2.  
  3. // Copyright (C) 2000-2013 Free Software Foundation, Inc.
  4. //
  5. // This file is part of the GNU ISO C++ Library.  This library is free
  6. // software; you can redistribute it and/or modify it under the
  7. // terms of the GNU General Public License as published by the
  8. // Free Software Foundation; either version 3, or (at your option)
  9. // any later version.
  10.  
  11. // This library is distributed in the hope that it will be useful,
  12. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. // GNU General Public License for more details.
  15.  
  16. // Under Section 7 of GPL version 3, you are granted additional
  17. // permissions described in the GCC Runtime Library Exception, version
  18. // 3.1, as published by the Free Software Foundation.
  19.  
  20. // You should have received a copy of the GNU General Public License and
  21. // a copy of the GCC Runtime Library Exception along with this program;
  22. // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  23. // <http://www.gnu.org/licenses/>.
  24.  
  25. //
  26. // ISO C++ 14882: 27.8  File-based streams
  27. //
  28.  
  29. /** @file bits/basic_file.h
  30.  *  This is an internal header file, included by other library headers.
  31.  *  Do not attempt to use it directly. @headername{ios}
  32.  */
  33.  
  34. #ifndef _GLIBCXX_BASIC_FILE_STDIO_H
  35. #define _GLIBCXX_BASIC_FILE_STDIO_H 1
  36.  
  37. #pragma GCC system_header
  38.  
  39. #include <bits/c++config.h>
  40. #include <bits/c++io.h>  // for __c_lock and __c_file
  41. #include <ios>
  42.  
  43. namespace std _GLIBCXX_VISIBILITY(default)
  44. {
  45. _GLIBCXX_BEGIN_NAMESPACE_VERSION
  46.  
  47.   // Generic declaration.
  48.   template<typename _CharT>
  49.     class __basic_file;
  50.  
  51.   // Specialization.
  52.   template<>
  53.     class __basic_file<char>
  54.     {
  55.       // Underlying data source/sink.
  56.       __c_file*         _M_cfile;
  57.  
  58.       // True iff we opened _M_cfile, and thus must close it ourselves.
  59.       bool              _M_cfile_created;
  60.  
  61.     public:
  62.       __basic_file(__c_lock* __lock = 0) throw ();
  63.  
  64.       __basic_file*
  65.       open(const char* __name, ios_base::openmode __mode, int __prot = 0664);
  66.  
  67.       __basic_file*
  68.       sys_open(__c_file* __file, ios_base::openmode);
  69.  
  70.       __basic_file*
  71.       sys_open(int __fd, ios_base::openmode __mode) throw ();
  72.  
  73.       __basic_file*
  74.       close();
  75.  
  76.       _GLIBCXX_PURE bool
  77.       is_open() const throw ();
  78.  
  79.       _GLIBCXX_PURE int
  80.       fd() throw ();
  81.  
  82.       _GLIBCXX_PURE __c_file*
  83.       file() throw ();
  84.  
  85.       ~__basic_file();
  86.  
  87.       streamsize
  88.       xsputn(const char* __s, streamsize __n);
  89.  
  90.       streamsize
  91.       xsputn_2(const char* __s1, streamsize __n1,
  92.                const char* __s2, streamsize __n2);
  93.  
  94.       streamsize
  95.       xsgetn(char* __s, streamsize __n);
  96.  
  97.       streamoff
  98.       seekoff(streamoff __off, ios_base::seekdir __way) throw ();
  99.  
  100.       int
  101.       sync();
  102.  
  103.       streamsize
  104.       showmanyc();
  105.     };
  106.  
  107. _GLIBCXX_END_NAMESPACE_VERSION
  108. } // namespace
  109.  
  110. #endif 
  111.