Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #9459

Re: Create an istream from an fd?

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.lang.c++
Subject Re: Create an istream from an fd?
Date 2011-08-30 15:51 +1200
Message-ID <9c3534Fo17U1@mid.individual.net> (permalink)
References (6 earlier) <pan.2011.08.28.03.31.29.633000@nowhere.com> <3173046d-6a90-4c8d-96ab-4f0b66a85104@n12g2000yqh.googlegroups.com> <pan.2011.08.29.19.12.39.670000@nowhere.com> <9c28piFq7jU1@mid.individual.net> <pan.2011.08.30.03.40.17.243000@nowhere.com>

Show all headers | View raw


On 08/30/11 03:40 PM, Nobody wrote:
> On Tue, 30 Aug 2011 07:49:06 +1200, Ian Collins wrote:
>
>>> Sure, the programmer can implement something themselves. But given how
>>> many programs will end up needing this (how many C++ programs use
>>> third-party libraries which use FILE*?), it seems like an oversight.
>>
>> A lot less than those that use a file descriptor.  Certainly in the Unix
>> world, FILE* is seldom used and integer file descriptors are pretty much
>> universal.
>
> That isn't my experience. Both are common enough that I couldn't say which
> of the two is the more popular. Descriptors tend to be used where
> buffering is likely to get in the way (e.g. binary I/O), FILE* where
> it's likely to be useful (e.g. text I/O). System calls use descriptors.
> Libraries which aim to be cross-platform tend to use FILE*.

Descriptors are used where the 'file' isn't a regular file (or in the 
case of popen, a pipe).  A FILE* isn't much use for a socket or a door 
for instance.

> An odd case is that popen() uses FILE*; possibly because programs are more
> likely to read/write text than binary via stdin/stdout, and that's easier
> to do with buffered streams.
>
> Ultimately, it doesn't make a great deal of difference, given the
> availability of fdopen() and fileno(). One exception is that some
> platforms support "user" streams which aren't backed by a descriptor
> (fopencookie() in GNU, funopen() in BSD), so working with FILE* is
> slightly more general.

For streams which read/write a regular file.

-- 
Ian Collins

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Create an istream from an fd? Noah Roberts <roberts.noah@gmail.com> - 2011-08-26 08:54 -0700
  Re: Create an istream from an fd? Leigh Johnston <leigh@i42.co.uk> - 2011-08-26 17:05 +0100
  Re: Create an istream from an fd? Victor Bazarov <v.bazarov@comcast.invalid> - 2011-08-26 12:20 -0400
  Re: Create an istream from an fd? Vaclav Zeman <vzeman79@sh.cvut.cz> - 2011-08-26 18:34 +0200
  Re: Create an istream from an fd? Ian Collins <ian-news@hotmail.com> - 2011-08-27 08:48 +1200
  Re: Create an istream from an fd? "Alf P. Steinbach" <alf.p.steinbach:usenet@gmail.com> - 2011-08-27 01:26 +0200
    Re: Create an istream from an fd? Ian Collins <ian-news@hotmail.com> - 2011-08-27 11:30 +1200
      Re: Create an istream from an fd? "Alf P. Steinbach" <alf.p.steinbach:usenet@gmail.com> - 2011-08-27 02:46 +0200
        Re: Create an istream from an fd? Ian Collins <ian-news@hotmail.com> - 2011-08-28 10:52 +1200
          Re: Create an istream from an fd? James Kanze <james.kanze@gmail.com> - 2011-08-27 16:35 -0700
            Re: Create an istream from an fd? Nobody <nobody@nowhere.com> - 2011-08-28 04:31 +0100
              Re: Create an istream from an fd? Ian Collins <ian-news@hotmail.com> - 2011-08-28 15:56 +1200
                Re: Create an istream from an fd? Nobody <nobody@nowhere.com> - 2011-08-28 20:03 +0100
                Re: Create an istream from an fd? Ian Collins <ian-news@hotmail.com> - 2011-08-29 07:52 +1200
              Re: Create an istream from an fd? James Kanze <james.kanze@gmail.com> - 2011-08-29 03:54 -0700
                Re: Create an istream from an fd? Leigh Johnston <leigh@i42.co.uk> - 2011-08-29 13:55 +0100
                Re: Create an istream from an fd? Nobody <nobody@nowhere.com> - 2011-08-29 20:12 +0100
                Re: Create an istream from an fd? Ian Collins <ian-news@hotmail.com> - 2011-08-30 07:49 +1200
                Re: Create an istream from an fd? Nobody <nobody@nowhere.com> - 2011-08-30 04:40 +0100
                Re: Create an istream from an fd? Ian Collins <ian-news@hotmail.com> - 2011-08-30 15:51 +1200
                Re: Create an istream from an fd? Nobody <nobody@nowhere.com> - 2011-08-31 00:03 +0100
                Re: Create an istream from an fd? Ian Collins <ian-news@hotmail.com> - 2011-08-31 11:55 +1200
                Re: Create an istream from an fd? Nobody <nobody@nowhere.com> - 2011-09-02 00:50 +0100
            Re: Create an istream from an fd? Ian Collins <ian-news@hotmail.com> - 2011-08-28 16:04 +1200
  Re: Create an istream from an fd? Nobody <nobody@nowhere.com> - 2011-08-27 02:40 +0100

csiph-web