You need to make a copy of stderr with dup() before the redirection happens, then copy it overtop of your own stderr after the redirection with dup2().
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:
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.
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)
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)
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)
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)
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)
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)
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)
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)
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)