01-19-2010
With system(), you can't. It only returns the exit status of the process it ran, but not any of it's output on stdout or stderr. Take a loop at popen/pclose if you want to capture the output.
10 More Discussions You Might Find Interesting
1. Programming
Hi friends
my C code is
int main()
{
system("cp <source> <destination>");
}
my question is
how to set variables for <source> and <destination>
how can we pass it to system() call.
can you suggest me
thankyou
kingskar (6 Replies)
Discussion started by: kingskar
6 Replies
2. UNIX for Advanced & Expert Users
How to send a message to another unix terminal along with the date specified (4 Replies)
Discussion started by: aajan
4 Replies
3. UNIX for Dummies Questions & Answers
I am analyzing snoop output and want to send "Hello world" to a remote system. I want to see if the message received is encrypted or not.
can I use ping to send a text message?
like ping "helloworld" <IP Addr>
Please help.
Thank you (5 Replies)
Discussion started by: rakeshou
5 Replies
4. Solaris
Hi,
how to send the output of a command directly to a file. For eg: am issuing metastat -a. How to send the output of this command to a file as well as mail. (3 Replies)
Discussion started by: rogerben
3 Replies
5. Shell Programming and Scripting
So, here's a scenario that requires the same logic as what I'm working on: Suppose that you have a directory containing files named after users. For awk's purposes, the filename is a single field-- something parse-friendly, like john_smith. Now, let's say that I'd like to populate an array in... (2 Replies)
Discussion started by: treesloth
2 Replies
6. Shell Programming and Scripting
hey guys in only new to scripting as such, but i have a problem.
i want to take the output of a search i do in the command line to then be in a variable but only a certain part of the output.
this this what im doing:
-bash-2.05b$ ldapsearch -x '(dn:=dc)' dc|grep dc=
# base... (1 Reply)
Discussion started by: jmorey
1 Replies
7. Filesystems, Disks and Memory
Hi Guys,
I've been having some arguments with my colleagues about one thing. Always my thought was that as as far as disk performance is concern by looking at the output of the iostat command (AIX) you would be able to identify if you have a hot disk and then by moving some files out that disk... (3 Replies)
Discussion started by: arizah
3 Replies
8. UNIX for Dummies Questions & Answers
I am trying to find an example for reading an array instead of reading a file and send out an email in ksh. Can you please help is that possible?
Algorithm
#!/bin/ksh
i=0
set -A ARR
if
then
let i=$
ARR="A does n't match with B"
fi
if
then
let i=$
ARR="P does n't match with Q"... (11 Replies)
Discussion started by: Ariean
11 Replies
9. UNIX for Dummies Questions & Answers
Greetings,
basically what I want to do is take the standard error from a cron file and store it on a file in a remote host (from Solaris to Linux). I want to create a cron file to do this everyday or put it on a script that will send it everyday to the other system (that doesnt matter). Any ideas... (2 Replies)
Discussion started by: picolin
2 Replies
10. Shell Programming and Scripting
#! /bin/ksh
#] && . ./.profile 2>/dev/null
if test -f '.profile'; then . ./.profile; fi;
#. .profile
LOG_DIR=/app/rpx/jobs/scripts/just/logs
sendEmail()
{
pzCType="$1"; pzTitle="$2"; pzMsg="$3"; pzFrom="$4"; pzTo="$5"; pzFiles="$6"; pzReplyTo="$7"
(
... (21 Replies)
Discussion started by: ankit.mca.aaidu
21 Replies
POPEN(3) BSD Library Functions Manual POPEN(3)
NAME
popen, pclose -- process I/O
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdio.h>
FILE *
popen(const char *command, const char *type);
int
pclose(FILE *stream);
DESCRIPTION
The popen() function ``opens'' a process by creating an IPC connection, forking, and invoking the shell. Historically, popen was implemented
with a unidirectional pipe; hence many implementations of popen only allow the type argument to specify reading or writing, not both. Since
popen is now implemented using sockets, the type may request a bidirectional data flow. The type argument is a pointer to a null-terminated
string which must be 'r' for reading, 'w' for writing, or 'r+' for reading and writing. In addition if the character 'e' is present in the
type string, the file descriptor used internally is set to be closed on exec(3).
The command argument is a pointer to a null-terminated string containing a shell command line. This command is passed to /bin/sh using the
-c flag; interpretation, if any, is performed by the shell.
The return value from popen() is a normal standard I/O stream in all respects save that it must be closed with pclose() rather than fclose().
Writing to such a stream writes to the standard input of the command; the command's standard output is the same as that of the process that
called popen(), unless this is altered by the command itself. Conversely, reading from a ``popened'' stream reads the command's standard
output, and the command's standard input is the same as that of the process that called popen().
Note that output popen() streams are fully buffered by default.
The pclose() function waits for the associated process to terminate and returns the exit status of the command as returned by wait4().
RETURN VALUES
The popen() function returns NULL if the fork(2), pipe(2), or socketpair(2) calls fail, or if it cannot allocate memory.
The pclose() function returns -1 if stream is not associated with a ``popened'' command, if stream has already been ``pclosed'', or if
wait4(2) returns an error.
ERRORS
The popen() function does not reliably set errno.
SEE ALSO
sh(1), fork(2), pipe(2), socketpair(2), wait4(2), fclose(3), fflush(3), fopen(3), shquote(3), stdio(3), system(3)
STANDARDS
The popen() and pclose() functions conform to IEEE Std 1003.2-1992 (``POSIX.2'').
HISTORY
A popen() and a pclose() function appeared in Version 7 AT&T UNIX.
BUGS
Since the standard input of a command opened for reading shares its seek offset with the process that called popen(), if the original process
has done a buffered read, the command's input position may not be as expected. Similarly, the output from a command opened for writing may
become intermingled with that of the original process. The latter can be avoided by calling fflush(3) before popen().
Failure to execute the shell is indistinguishable from the shell's failure to execute command, or an immediate exit of the command. The only
hint is an exit status of 127.
The popen() argument always calls sh(1), never calls csh(1).
BSD
June 24, 2011 BSD