Sponsored Content
Top Forums Programming how to redirect back to stdout Post 302288484 by Corona688 on Tuesday 17th of February 2009 10:40:58 AM
Old 02-17-2009
Doing this in C++ is the same as doing this in C since the system calls are all the same.

stdin is probably the same terminal, but since it's opened with the wrong file mode duplicating it won't work right. But you might be able to figure out what the terminal at least is:
Code:
$ ls -l /dev/fd/0
lrwx------ 1 monttyle monttyle 64 Feb 17 09:15 /dev/fd/0 -> /dev/pts/1
$

If you don't have that, try /dev/stdin or /proc/self/fd/0

You can retrieve the same info in your C/C++ program with the readlink() call, then open the terminal and re-duplicate it over stdout and stderr.

This, of course, won't work when stdin was never a terminal, so be careful to not let your program do crazy things when you pipe or redirect into it.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Redirect stdout and stderr

How can I redirect and append stdout and stderr to a file when using cron? Here is my crontab file: */5 * * * * /dir/php /dir/process_fns.php >>& /dir/dump.txt Cron gives me an 'unexpected character found in line' when trying to add my crontab file. Regards, Zach Curtis POPULUS (8 Replies)
Discussion started by: zcurtis
8 Replies

2. UNIX for Advanced & Expert Users

problem with redirect stdout to file

Hi all hope you can help as I am going MAD!!! :eek: The below is in a shell script but the redirection in the sed line does not work and outputs to the screen and the $fname_2 does note get created ????? Can any one help ?? #!/bin/ksh cd /app/ for fname in `ls -1 X*` do sed 1d $fname... (3 Replies)
Discussion started by: mlucas
3 Replies

3. UNIX for Dummies Questions & Answers

stdout back to tty

Hi everyone! Well, this is the thing.. I sent a process's stdout to /dev/null. This process is very time consuming and after a week it keeps running, what I need is to switch the stdout back to screen to see what's going on. Anyone know if it's possible and how to do it? Thanks and... (3 Replies)
Discussion started by: piltrafa
3 Replies

4. UNIX for Advanced & Expert Users

STDOUT redirect to a FILE, when fuser command is used !!

Hi all, I have the following script: ------------------------------------------------- #SCRIPT TO CHECK WHO HAS ACCESSED THE LOG/FILE IN PAST 'N' MINUTES, AND MAIL ACCORDINGLY. MYPATH="/clocal/mqbrkrs/user/mqsiadm/sanjay/" MAIL_RECIPIENTS="vg517@dcx.com" Subject="File accessed in last... (6 Replies)
Discussion started by: varungupta
6 Replies

5. Shell Programming and Scripting

How to redirect stderr and stdout to a file

Hi friends I am facing one problem while redirecting the out of the stderr and stdout to a file let example my problem with a simple example I have a file (say test.sh)in which i run 2 command in the background ps -ef & ls & and now i am run this file and redirect the output to a file... (8 Replies)
Discussion started by: sushantnirwan
8 Replies

6. UNIX for Dummies Questions & Answers

How to put the STDOUT back to terminal

I have put the file descriptor 1 to file, using command exec 1>>out.txt Then I could not see any output on the screen, how could I restore the default output to terminal? :mad: Thanks (3 Replies)
Discussion started by: biglau
3 Replies

7. Programming

redirect stdout

hello again! i use dup2 to redirect stdout. I run what i want, now i want undo this redirection. how can i do that? thanx in advance (7 Replies)
Discussion started by: nicos
7 Replies

8. Shell Programming and Scripting

redirect STDOUT to a file in a subshell

Hi, I would like to avoid re-directing line by line to a file. What is the best way to re-direct STDOUT to a file in a subshell? Thanks in advance. Cheers Vj (1 Reply)
Discussion started by: tnvee
1 Replies

9. Red Hat

Redirect STDOUT and STDERR of chsh

EDIT: Nevermind, figured it out! Forgot to put backslashes in my perl script to not process literals! Hi everyone. I am trying to have this command pass silently. (no output) chsh -s /bin/sh news Currently it outputs. I've tried.... &> /dev/null 1> /dev/null 2>&1 /dev/null 1>&2... (1 Reply)
Discussion started by: austinharris43
1 Replies

10. Shell Programming and Scripting

Bizzare behavior on redirect of stdout

Oracle Linux 5.6 64-bit (derivative of RHEL) Dear Ann Landers, This is about as bizarre as anything I've ever seen. I have a little test script I've been working with. When I redirect stdout to a file, no file. Make a copy of the script to another name. Execute it and redirect stdout, and... (4 Replies)
Discussion started by: edstevens
4 Replies
FBB::Redirector(3bobcat)				   System Level File Redirection				  FBB::Redirector(3bobcat)

NAME
FBB::Redirector - Redirects a file descriptor to another descriptor SYNOPSIS
#include <bobcat/redirector> Linking option: -lbobcat DESCRIPTION
Objects of the class FBB::Redirector set up a system level file redirection, using file descriptors rather than streams. FBB::Redirector objects are effectively wrappers around the dup2(2) system call. System level redirection allows the programmer to send output to, e.g., the standard output stream, which actually appears at another stream (e.g., the standard error). It is a stronger form of redirection than the standard one offered by C++, which uses std::streambuf redirection, and which is, because of that, bound to the program's scope. System level redirection, on the other hand, is applied at the system level, allowing the programmer to redirect standard streams when starting a program. For example, the standard error is commonly written to the standard output using an invocation like program 2>&1. When constructing FBB::Redirector objects a file descriptor is required, and another file descriptor is required when defining the redi- rection. Formally, file descriptors are not defined in C++, but they are available in many types of operating systems. In those systems each `file' has an associated `file descriptor'. A file descriptor is an int, which is an index into the program's file allocation table, maintained by the system. Another type of well-known entities which are file descriptors are sockets. Well-known filedescriptors (defined in, e.g., unistd.h) having fixed values are 0 (STDIN_FILENO), representing the standard input stream (std::cin); 1, (STDOUT_FILENO), representing the standard output stream (std::cout); 2, (STDERR_FILENO), representing the standard error stream (cerr); Notes: o System-level redirection outlives system calls from the execl(3) family. o Destroying a FBB::Redirector object does not undo the redirection set up by that object. NAMESPACE
FBB All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace FBB. INHERITS FROM
- ENUM
The enumeration StandardFileno holds the following values: o STDIN(0) o STDOUT(1) o STDERR(2) These values may be used to set up a redirection instead of the plain numbers. CONSTRUCTORS
o Redirector(int fd): This constructor expects the file descriptor of the file that will be used in the program to access (read, write) another file. The copy constructor is available. MEMBER FUNCTIONS
o void swallow(int otherFd) const: This member function expects the file descriptor of the file that will be redirected. Redirection means that the descriptor provided to the constructor will be used when referring to the file descriptor provided to the swallow() member (see the example below). If the redirection fails an FBB::Errno object is thrown, whose which() member shows the system's errno value set by the failing dup2(2) function. o void through(int otherFd) const: This member function also redirects otherFd to the file descriptor provided to the constructor, but will also close the construc- tor's file descriptor. After calling through the file referred to by the constructor's file descriptor can only be accessed from otherFd. The file originally referred to by otherFd is not accessible anymore from the current process. EXAMPLE
#include <iostream> #include <bobcat/redirector> using namespace std; using namespace FBB; int main() { Redirector redirector(Redirector::STDOUT); redirector.swallow(Redirector::STDERR); cerr << "This appears at the standard output stream " "use `a.out > /dev/null' to suppress this message" << endl; } FILES
bobcat/redirector - defines the class interface SEE ALSO
bobcat(7), errno(3bobcat), dup2(2), execl(3) BUGS
None Reported. DISTRIBUTION FILES
o bobcat_3.01.00-x.dsc: detached signature; o bobcat_3.01.00-x.tar.gz: source archive; o bobcat_3.01.00-x_i386.changes: change log; o libbobcat1_3.01.00-x_*.deb: debian package holding the libraries; o libbobcat1-dev_3.01.00-x_*.deb: debian package holding the libraries, headers and manual pages; o http://sourceforge.net/projects/bobcat: public archive location; BOBCAT
Bobcat is an acronym of `Brokken's Own Base Classes And Templates'. COPYRIGHT
This is free software, distributed under the terms of the GNU General Public License (GPL). AUTHOR
Frank B. Brokken (f.b.brokken@rug.nl). libbobcat1-dev_3.01.00-x.tar.gz 2005-2012 FBB::Redirector(3bobcat)
All times are GMT -4. The time now is 12:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy