Stream vs Buffer

Discussion in 'C++' started by Sandy, Jul 23, 2005.

  1. Sandy

    Sandy Guest

    Hi,
    In one of my interview i was asked the difference between Stream and Buffer.
    can anybody explain the difference.

    Thanks
     
    Sandy, Jul 23, 2005
    #1
    1. Advertising

  2. On Sat, 23 Jul 2005 14:06:07 +0400, Sandy <> wrote:

    > Hi,
    > In one of my interview i was asked the difference between Stream and
    > Buffer.
    > can anybody explain the difference.


    Standard streams are just mere formatters. They use streambufffers to do
    actual IO.

    --
    Maxim Yegorushkin
    <>
     
    Maxim Yegorushkin, Jul 23, 2005
    #2
    1. Advertising

  3. Maxim Yegorushkin wrote:

    > On Sat, 23 Jul 2005 14:06:07 +0400, Sandy <> wrote:
    >
    >> Hi,
    >> In one of my interview i was asked the difference between Stream and
    >> Buffer.
    >> can anybody explain the difference.

    >
    > Standard streams are just mere formatters. They use streambufffers to do
    > actual IO.
    >

    As I understand things (and that may not be well), the default iostream has
    a buffer capacity of 1, and therefore isn't really a buffer at all.
    Perhaps Dietmar can clear this up?
    --
    If our hypothesis is about anything and not about some one or more
    particular things, then our deductions constitute mathematics. Thus
    mathematics may be defined as the subject in which we never know what we
    are talking about, nor whether what we are saying is true.-Bertrand Russell
     
    Steven T. Hatton, Jul 23, 2005
    #3
  4. Steven T. Hatton wrote:

    > Maxim Yegorushkin wrote:
    >
    >> On Sat, 23 Jul 2005 14:06:07 +0400, Sandy <> wrote:
    >>
    >>> Hi,
    >>> In one of my interview i was asked the difference between Stream and
    >>> Buffer.
    >>> can anybody explain the difference.

    >>
    >> Standard streams are just mere formatters. They use streambufffers to do
    >> actual IO.
    >>

    > As I understand things (and that may not be well), the default iostream
    > has a buffer capacity of 1, and therefore isn't really a buffer at all.
    > Perhaps Dietmar can clear this up?



    Whoops! I meant to say 'isn't really buffered at all'.
    --
    If our hypothesis is about anything and not about some one or more
    particular things, then our deductions constitute mathematics. Thus
    mathematics may be defined as the subject in which we never know what we
    are talking about, nor whether what we are saying is true.-Bertrand Russell
     
    Steven T. Hatton, Jul 23, 2005
    #4
  5. On Sat, 23 Jul 2005 15:12:36 +0400, Steven T. Hatton
    <> wrote:

    > As I understand things (and that may not be well), the default iostream
    > has a buffer capacity of 1, and therefore isn't really a buffer at all.


    I'm interested why would you care?

    --
    Maxim Yegorushkin
    <>
     
    Maxim Yegorushkin, Jul 23, 2005
    #5
  6. Steven T. Hatton wrote:
    > As I understand things (and that may not be well), the default iostream
    > has a buffer capacity of 1, and therefore isn't really a buffer at all.
    > Perhaps Dietmar can clear this up?


    What is a "default iostream"? There are eight standard stream objects
    (cin, cout, cerr, clog and their wide character counterparts). The
    standard does not state whether these are buffered or not. Essentially,
    whether they are buffered on stream buffer level normally depends on
    the implementation strategy with respect to the standard C stream
    (stdin, stdout, and stderr): by default, the C and C++ streams are
    in some form synchronized, i.e. you can mix input and output of the
    C and C++ streams and the character sequences are still in the order
    the output was done. To achieve this, the C++ stream buffers are
    either unbuffered and use the standard interface of the C streams
    internally or the C++ stream buffers somehow share their buffer with
    the corresponding C streams. The latter generally only works if the
    implementation controls both the C and the C++ implementation. In
    any case, on the C level the streams are typically always buffered
    unless the C stream is setup explicity be unbuffered.

    For all other IOStreams in the standard C++ library, e.g. file and
    string streams, it is safe to assume that they are buffered. Whether
    user-defined streams are buffered or not depends on the implementation
    of the corresponding stream buffer but obviously the C++ standard does
    not make any statement here. That is, in summary most stream buffers
    are likely to be buffered but the standard does not guarantee anything
    in this area. Of course, I'd recommend that all stream buffers should
    do actual buffering because this can be used by many algorithms in the
    standard C++ library: these can be specialized to cope with stream
    buffers specially and e.g. bypass the stream buffer interface in many
    interesting situations.
    --
    <mailto:> <http://www.dietmar-kuehl.de/>
    <http://www.eai-systems.com> - Efficient Artificial Intelligence
     
    Dietmar Kuehl, Jul 24, 2005
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Raja
    Replies:
    12
    Views:
    24,409
    John Harrison
    Jun 21, 2004
  2. Replies:
    2
    Views:
    606
    sergejusz
    Mar 26, 2007
  3. Neal Becker

    buffer creates only read-only buffer?

    Neal Becker, Jan 8, 2009, in forum: Python
    Replies:
    0
    Views:
    415
    Neal Becker
    Jan 8, 2009
  4. xingye
    Replies:
    9
    Views:
    276
    Michael Lu
    Apr 19, 2004
  5. Roedy Green

    byte stream vs char stream buffer

    Roedy Green, May 7, 2014, in forum: Java
    Replies:
    20
    Views:
    205
    Silvio
    May 18, 2014
Loading...

Share This Page