Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.os.linux.development.apps > #301
| 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 | Next — Previous in thread | Next in thread | Find similar
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