HPlogo MPE/iX Developer's Kit Reference Manual Volume I: HP 3000 MPE/iX Computer Systems > Chapter 4  POSIX/iX Library Function Descriptions

popen

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

Open a pipe to a command and execute the command.

Syntax

   #include <stdio.h>

   FILE *popen(const char *command, const char *mode);

Parameters

command

Is a string giving the command line for a command you want to execute.

mode

Specifies the nature of the pipe you want to open. This can be the string "r" or "w". See the following section for more details.

Description

popen() executes the command specified by command. It does this as if it spawns a child process with fork(), then the child process invokes the shell sh with

   execl (shellpath, "sh", "-c", command, NULL);

where shellpath is the path name of the file that contains the shell.

popen() establishes a pipe between command and the process which executes popen(). The result of popen() is a FILE * pointer that can be used to read/write on this pipe. If mode is "r", standard output from command is piped to the process which calls popen(). Data shipped along this pipe can be read with normal I/O calls using the FILE * pointer returned by popen(). If mode is "w", output written to the pipe by the process which calls popen() is sent as the standard input to command.

Streams opened with popen() should be closed with pclose().

Errors

popen() returns NULL if it cannot create the pipe or the child process. It sets errno to one of the values used by pipe() or fork(). popen() may also set errno to:

EINVALCAUSEThe value of mode was invalid.
 ACTIONSpecify a valid value for mode.

See Also

sh(1), pclose()

Feedback to webmaster