Penguin

Differences between version 4 and predecessor to the previous major change of popen(3).

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 4 Last edited on Tuesday, July 22, 2003 10:51:33 pm by CraigBox Revert
Older page: version 2 Last edited on Tuesday, June 4, 2002 12:24:30 am by perry Revert
@@ -1,33 +1,15 @@
-POPEN  
-!!!POPEN  
-NAME  
-SYNOPSIS  
-DESCRIPTION  
-RETURN VALUE  
-ERRORS  
-CONFORMING TO  
-BUGS  
-HISTORY  
-SEE ALSO  
-----  
 !!NAME 
+popen, pclose - process I/O  
  
-  
-popen, pclose - process I/O  
 !!SYNOPSIS 
  
+ __#include <stdio.h>__  
  
-__#include __ 
+ __FILE *popen(const char *__''command''__, const char*__''type''__);__  
+ __int pclose(FILE *__''stream''__); __ 
  
-  
-__FILE *popen(const char *__''command''__, const char  
-*__''type''__);__  
-  
-  
-__int pclose(FILE *__''stream''__);__  
 !!DESCRIPTION 
-  
  
 The __popen()__ function opens a process by creating a 
 pipe, forking, and invoking the shell. Since a pipe is by 
 definition unidirectional, the ''type'' argument may 
@@ -63,61 +45,42 @@
  
 The __pclose__ function waits for the associated process 
 to terminate and returns the exit status of the command as 
 returned by __wait4__. 
-!!RETURN VALUE  
  
+!!RETURN VALUE  
  
 The __popen__ function returns __NULL__ if the 
 fork(2) or pipe(2) calls fail, or if it cannot 
 allocate memory. 
-  
  
 The __pclose__ function returns -1 if __wait4__ 
 returns an error, or some other error is 
 detected. 
+  
 !!ERRORS 
-  
  
 The __popen__ function does not set ''errno'' if 
 memory allocation fails. If the underlying __fork()__ or 
 __pipe()__ fails, ''errno'' is set appropriately. If 
 the ''mode'' argument is invalid, and this condition is 
 detected, ''errno'' is set to __EINVAL__. 
  
+If __pclose()__ cannot obtain the child status, ''errno'' is set to __ECHILD__.  
  
-If __pclose()__ cannot obtain the child status,  
-''errno'' is set to __ECHILD__.  
 !!CONFORMING TO 
  
+POSIX.2  
  
-POSIX.2  
 !!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__.  
  
-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
  
-  
-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.  
 !!HISTORY 
  
+A __popen()__ and a __pclose()__ function appeared in Version 7 AT&T Unix.  
  
-A __popen()__ and a __pclose()__ function appeared in  
-Version 7 AT__  
 !!SEE ALSO 
  
-  
- fork(2), sh(1), pipe(2),  
- wait4(2), fflush(3), fclose(3),  
- fopen(3), stdio(3),  
- system(3)  
-----  
+fork(2), sh(1), pipe(2), wait4(2), fflush(3), fclose(3), fopen(3), stdio(3), system(3) 
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.