Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

pipe(2)

wait(2)

fclose(3S)

fopen(3S)

system(3S)

POPEN(3S)  —  HP-UX

NAME

popen, pclose − initiate pipe I/O to/from a process

SYNOPSIS

#include <stdio.h>

FILE ∗popen (command, type)
char ∗command, ∗type;

int pclose (stream)
FILE ∗stream;

DESCRIPTION

Popen creates a pipe between the calling program and the command to be executed. 

The arguments to popen are pointers to null-terminated strings containing, respectively, a shell command line and an I/O mode, either r for reading or w for writing. 

Popen returns a stream pointer such that one can write to the standard input of the command, if the I/O mode is w, by writing to the file stream; and one can read from the standard output of the command, if the I/O mode is r, by reading from the file stream.

A stream opened by popen should be closed by pclose, which waits for the associated process to terminate and returns the exit status of the command.

Because open files are shared, a type r command may be used as an input filter and a type w command as an output filter. 

RETURN VALUE

Popen returns a NULL pointer if files or processes cannot be created.  The success of the command execution can be checked by examining the return value of pclose. 

Pclose returns −1 if stream is not associated with a “popened” command.

WARNINGS

If the original and “popened” processes concurrently read or write a common file, neither should use buffered I/O, because the buffering will not work properly. Problems with an output filter may be forestalled by careful buffer flushing, e.g., with fflush; see fclose(3S).

SEE ALSO

pipe(2), wait(2), fclose(3S), fopen(3S), system(3S). 

Hewlett-Packard Company  —  Version B.1,  May 11, 2021

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026