Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exec(2)

fork(2)

fclose(3)

fopen(3)

pclose(3)

pipe(2)

setbuf(3)

popen(3)  —  Subroutines

OSF

NAME

popen − Initiates a pipe to a process

LIBRARY

Standard I/O Package (libc.a)

SYNOPSIS

#include <stdio.h> FILE ∗popen (
const char ∗command,
const char ∗type );

PARAMETERS

commandPoints to a null-terminated string containing a shell command line. 

typePoints to a null-terminated string containing an I/O mode. If the type parameter is the value r, the calling program can read from the standard output of the command by reading from the returned file stream. If the type parameter is the value w, the calling program can write to the standard input of the command by writing to the returned file stream.  Because open files are shared, a type r command can be used as an input filter and a type w command as an output filter. 

DESCRIPTION

The popen() function creates a pipe between the calling program and a shell command to be executed.  It returns a pointer to a FILE structure for the stream. 

NOTES

Programs using the popen() function to invoke an output filter should beware of possible deadlock caused by output data remaining in the program’s buffer.  This can be avoided by either using the setbuf() function to ensure that the output stream is unbuffered, or by using the fflush() function to ensure that all buffered data is flushed before calling the pclose() function. 

AES Support Level:
Trial use

CAUTION

If the original processes and the process started with the popen() function concurrently read or write a common file, neither should use buffered I/O. If they do, the results are unpredictable. 

RETURN VALUES

Upon successful completion, the popen() function returns a pointer to the FILE structure for the opened stream.  In case of error because files or processes could not be created, the popen() function returns a null pointer. 

RELATED INFORMATION

Functions: exec(2), fork(2), fclose(3), fopen(3), pclose(3), pipe(2), setbuf(3)

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