129 lines
5.0 KiB
HTML
129 lines
5.0 KiB
HTML
<!--startcut ======================================================= -->
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<html>
|
|
<head>
|
|
<META NAME="generator" CONTENT="lgazmail v1.2N.d">
|
|
<TITLE>The Answer Guy 46: Programming Question about Regaining stdin/stdout</TITLE>
|
|
</HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000"
|
|
LINK="#3366FF" VLINK="#A000A0">
|
|
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
<H4>"The Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
|
|
<P> <hr> <P>
|
|
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
<center>
|
|
<H1><A NAME="answer">
|
|
<img src="../../gx/dennis/qbubble.gif" alt="(?)"
|
|
border="0" align="middle">
|
|
<font color="#B03060">The Answer Guy</font>
|
|
<img src="../../gx/dennis/bbubble.gif" alt="(!)"
|
|
border="0" align="middle">
|
|
</A></H1>
|
|
<BR>
|
|
<H4>By James T. Dennis,
|
|
<a href="mailto:linux-questions-only@ssc.com">linux-questions-only@ssc.com</a><BR>
|
|
LinuxCare,
|
|
<A HREF="http://www.linuxcare.com/">http://www.linuxcare.com/</A>
|
|
</H4>
|
|
</center>
|
|
|
|
<p><hr><p>
|
|
<!-- endcut ======================================================= -->
|
|
<!-- begin 10 -->
|
|
<H3 align="left"><img src="../../gx/dennis/qbubble.gif"
|
|
height="50" width="60" alt="(?) " border="0"
|
|
>Programming Question about Regaining stdin/stdout</H3>
|
|
|
|
|
|
<p><strong>From Marco Mele on Wed, 22 Sep 1999
|
|
</strong></p>
|
|
<!-- ::
|
|
Programming Question about Regaining stdin/stdout
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
:: -->
|
|
<P><STRONG>
|
|
After a freopen() to redirect stdin or stdout,
|
|
how to get back the stdin to the keyboard and the
|
|
stdout to the screen?
|
|
</STRONG></P>
|
|
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
|
|
HEIGHT="28" WIDTH="50" BORDER="0"
|
|
>
|
|
It sounds like a C/C++ programming question.
|
|
I'm not a C programmer.
|
|
</BLOCKQUOTE>
|
|
<BLOCKQUOTE>
|
|
However, I might try keeping my stdin and stdout
|
|
file handles and using an <tt>open()</tt> call on new
|
|
file handles for my other file operations. Then
|
|
you can perform the relaying yourself, and thus
|
|
control what data goes to each of these streams.
|
|
</BLOCKQUOTE>
|
|
<BLOCKQUOTE>
|
|
I suppose you could save the value of your
|
|
current TTY (using the coding equivalent of the
|
|
'<tt>tty</tt>'(1) command; grab its sources for an example)
|
|
and re-open them later. (If this was a "do my homework"
|
|
question your assignment is going to be pretty late,
|
|
and probably wrong).
|
|
</BLOCKQUOTE>
|
|
<!-- sig -->
|
|
<p><em>[ This message arrived while Jim was on a two week assignment in
|
|
Japan... although he has begun to read into the backlog, there
|
|
are likely to be a few more late answers coming your way, gentle
|
|
readers. -- Heather ]</em></p>
|
|
|
|
<!-- end 10 -->
|
|
<!--startcut ======================================================= -->
|
|
<P> <hr> <P>
|
|
<H5 align="center"><a href="http://www.linuxgazette.com/copying.html"
|
|
>Copyright ©</a> 1999, James T. Dennis
|
|
<BR>Published in <I>The Linux Gazette</I> Issue 46 October 1999</H5>
|
|
<H6 ALIGN="center">HTML transformation by
|
|
<A HREF="mailto:star@starshine.org">Heather Stern</a> of
|
|
Starshine Technical Services,
|
|
<A HREF="http://www.starshine.org/">http://www.starshine.org/</A>
|
|
</H6>
|
|
<P> <hr> <P>
|
|
<!-- begin tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::-->
|
|
<TABLE WIDTH="96%"><TR VALIGN="center" ALIGN="center">
|
|
<TD colspan="2" align="left"><A
|
|
HREF="../lg_answer46.html"
|
|
><IMG SRC="../../gx/dennis/answernew.gif"
|
|
ALT="[ Answer Guy Current Index ]"></A></td>
|
|
<TD WIDTH="12%"><A HREF="1.html">1</A></TD>
|
|
<TD WIDTH="12%"><A HREF="2.html">2</A></TD>
|
|
<TD WIDTH="12%"><A HREF="3.html">3</A></TD>
|
|
<TD WIDTH="12%"><A HREF="4.html">5</A></TD>
|
|
<TD WIDTH="12%"><A HREF="5.html">5</A></TD>
|
|
<TD WIDTH="12%"><A HREF="6.html">6</A></TD>
|
|
</TR><TR VALIGN="center" ALIGN="center">
|
|
<TD WIDTH="12%"><A HREF="7.html">7</A></TD>
|
|
<TD WIDTH="12%"><A HREF="8.html">8</A></TD>
|
|
<TD WIDTH="12%"><A HREF="9.html">9</A></TD>
|
|
<TD WIDTH="12%"><A HREF="10.html">10</A></TD>
|
|
<TD WIDTH="12%"><A HREF="11.html">11</A></TD>
|
|
<TD WIDTH="12%"><A HREF="12.html">12</A></TD>
|
|
<TD align="right" colspan="2"><A
|
|
HREF="../../tag/kb.html"
|
|
><IMG SRC="../../gx/dennis/answertoc.gif"
|
|
ALT="[ Index of Past Answers ]"></A></td>
|
|
</TR></TABLE>
|
|
<!-- end tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::::-->
|
|
<P> <hr> <P>
|
|
<!-- begin lgnav ::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
<A HREF="../index.html"
|
|
><IMG SRC="../../gx/indexnew.gif" ALT="[ Table Of Contents ]"></A>
|
|
<A HREF="/index.html"
|
|
><IMG SRC="../../gx/homenew.gif" ALT="[ Front Page ]"></A>
|
|
<A HREF="../lg_bytes46.html"
|
|
><IMG SRC="../../gx/back2.gif" ALT="[ Previous Section ]"></A>
|
|
<A HREF="../../faq/index.html"
|
|
><IMG SRC="../../gx/dennis/faq.gif"
|
|
ALT="[ Linux Gazette FAQ ]"></A>
|
|
<A HREF="../lg_tips46.html"
|
|
><IMG SRC="../../gx/fwd.gif" ALT="[ Next Section ]"></A>
|
|
<!-- end lgnav ::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
</BODY></HTML>
|
|
<!--endcut ========================================================= -->
|