Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
POPEN(3S)							     POPEN(3S)

NAME
       popen, pclose - initiate	I/O to/from a process

SYNOPSIS
       #include	<stdio.h>

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

       pclose(stream)
       FILE *stream;

DESCRIPTION
       The arguments to	popen are pointers to null-terminated strings contain-
       ing respectively	a shell	command	line and an I/O	mode, either  "r"  for
       reading	or  "w"	 for  writing.	 It creates a pipe between the calling
       process and the command to be executed.	The value returned is a	stream
       pointer	that can be used (as appropriate) to write to the standard in-
       put of the command or read from its standard output.

       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 in-
       put filter, and a type "w" as an	output filter.

SEE ALSO
       pipe(2),	fopen(3), fclose(3), system(3),	wait(2)

DIAGNOSTICS
       Popen  returns  a null pointer if files or processes cannot be created,
       or the Shell cannot be accessed.

       Pclose returns -1 if stream is not associated with a `popened' command.

BUGS
       Buffered	reading	before opening an input	filter may leave the  standard
       input  of  that	filter mispositioned.  Similar problems	with an	output
       filter may be forestalled by careful buffer flushing, e.g. with fflush,
       see fclose(3).

								     POPEN(3S)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | DIAGNOSTICS | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=popen&manpath=Unix+Seventh+Edition>

home | help