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


Groups > comp.os.linux.development.apps > #301

Re: How to dup a FILE*

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail
From David W Noon <dwnoon@spamtrap.ntlworld.com>
Newsgroups comp.os.linux.development.apps
Subject Re: How to dup a FILE*
Date Tue, 6 Dec 2011 21:46:41 +0000
Organization Luton Operatic Society
Lines 41
Message-ID <20111206214641.3265e741@dwnoon.ntlworld.com> (permalink)
References <jbkl2v$a75$1@nntp.ts.fujitsu.com> <20111206195333.49dd7a9d@dwnoon.ntlworld.com> <8762hto2p4.fsf@sapphire.mobileactivedefense.com>
Mime-Version 1.0
Content-Type text/plain; charset=US-ASCII
Content-Transfer-Encoding base64
Injection-Info mx04.eternal-september.org; posting-host="H8DOh31pSOx4nH+KEGiP4w"; logging-data="19683"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/phDVYjyDyYpkTtu/xlD6L"
X-Newsreader Claws Mail 3.7.10 (GTK+ 2.24.5; i686-pc-linux-gnu)
Cancel-Lock sha1:4x6Vi0/5mn1EUT/SLDG0ucJxr3U=
Xref x330-a1.tempe.blueboxinc.net comp.os.linux.development.apps:301

Show key headers only | View raw


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tue, 06 Dec 2011 20:38:47 +0000, Rainer Weikusat wrote about Re: How
to dup a FILE*:

>David W Noon <dwnoon@spamtrap.ntlworld.com> writes:
>> On Tue, 06 Dec 2011 09:51:43 +0100, Josef Moellers wrote about How to
>> dup a FILE*:
>>
>>>I need to juggle with stderr: redirecting it from one file to another
>>>and back.
>> [snip]
>>
>> I think you're over-complicating things here.  After all, stderr is
>> simply a pointer.  So, cache the old pointer; open a new file stream
>> stored in stderr; fclose(stderr) when done; reinstate the original
>> pointer.
>
>That's a thoroughly stupid idea because it won't affect output to
>'standard error filedescriptor' which doesn't go through the stderr
>stream *and* while the glibc documentation claims that this should
>work, it actually doesn't (or at least didn't for some random version
>where I tried this about ten years ago -- only to be told that I
>"should use freopen instead" by Ulrich Drepper [which I couldn't do
>because I was trying to divert the output to a socket]).

The C Standard Library does not provide "file descriptors" with any
specified meaning, only as opaque integers.  Consequently, all error
logging *should* be done using the stderr stream, not fd of 2.  It is
only a happenstance of platform-specific shells and run-time libraries
(e.g. glibc) that stderr defaults to fd of 2 on UNIX-like systems.

My best suggestion is that you try it and see.

Note also that freopen() closes the existing stream and opens a new
one, so using that will make your initial stderr useless.  The
underlying file descriptor can change too, as a call to fileno() before
and after freopen() will probably demonstrate.

Again, just try it and see.
- -- 
Regards,

Dave  [RLU #314465]
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
dwnoon@spamtrap.ntlworld.com (David W Noon)
Remove spam trap to reply by e-mail.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)

iEYEARECAAYFAk7ejUgACgkQ9MqaUJQw2MkDEwCeKRxnWCTuAROspG1BdNEUKGZh
HhMAn0+grlyRl36gkG2XiTMlaG4KGRPw
=Pc35
-----END PGP SIGNATURE-----

Back to comp.os.linux.development.apps | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

How to dup a FILE* Josef Moellers <josef.moellers@ts.fujitsu.com> - 2011-12-06 09:51 +0100
  Re: How to dup a FILE* Richard Kettlewell <rjk@greenend.org.uk> - 2011-12-06 09:16 +0000
    Re: How to dup a FILE* Josef Moellers <josef.moellers@ts.fujitsu.com> - 2011-12-06 10:41 +0100
  Re: How to dup a FILE* Jasen Betts <jasen@xnet.co.nz> - 2011-12-06 13:28 +0000
    Re: How to dup a FILE* Josef Moellers <josef.moellers@ts.fujitsu.com> - 2011-12-06 16:57 +0100
  Re: How to dup a FILE* David W Noon <dwnoon@spamtrap.ntlworld.com> - 2011-12-06 19:53 +0000
    Re: How to dup a FILE* Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-12-06 20:38 +0000
      Re: How to dup a FILE* Richard Kettlewell <rjk@greenend.org.uk> - 2011-12-06 22:03 +0000
      Re: How to dup a FILE* David W Noon <dwnoon@spamtrap.ntlworld.com> - 2011-12-06 21:46 +0000
        Re: How to dup a FILE* Rainer Weikusat <rweikusat@mssgmbh.com> - 2011-12-07 17:52 +0000

csiph-web