Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

popen(3) [bsd man page]

POPEN(3)						     Library Functions Manual							  POPEN(3)

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 containing 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 input 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 input filter, and a type "w" as an output filter. SEE ALSO
pipe(2), fopen(3S), fclose(3S), system(3), wait(2), sh(1) 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, for instance, with fflush, see fclose(3S). Popen always calls sh, never calls csh. 7th Edition May 15, 1985 POPEN(3)

Check Out this Related Man Page

popen(3)						     Library Functions Manual							  popen(3)

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

Syntax
       #include <stdio.h>

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

       pclose(stream)
       FILE *stream;

Description
       The arguments to are pointers to null-terminated strings containing respectively a shell command line and an I/O mode, either "r" for read-
       ing 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 input of the command or read from its standard output.

       A stream opened by should be closed by 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" as an output filter.

Diagnostics
       The routine returns a null pointer if files or processes cannot be created, or the shell cannot be accessed.

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

Restrictions
       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, for instance, with For further information, see

       The routine always calls and never calls

See Also
       sh(1), pipe(2), wait(2), system(3), fclose(3s), fopen(3s)

																	  popen(3)
Man Page

15 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

pclose returning -1

Hi all, In my application i am trying to select some text & then give it to print. for this i am opening a stream using popen & then later closing using pclose. Now this is working fine in my environment (solaris) but the pclose function is failing at my clients m/c. Even though print is... (3 Replies)
Discussion started by: nimishm123
3 Replies

2. Shell Programming and Scripting

filter and get the latest order number

hello, how can I filter and get the latest order number (last five digits) below: input file: johnmm00001 maryyy00121 johnm100222 johnmm00003 maryyy00122 output file: johnmm00003 maryyy00122 johnm100222 (6 Replies)
Discussion started by: happyv
6 Replies

3. Shell Programming and Scripting

Using output to input another command

Hi guys. Is it possible (I'm sure it is) to use the output of a simple 'ls' command as input of another command 'tail'. It is not really the output of the 'ls'. I have to useeach line of the output. This is the first command... ls *myFile*021308* Which it outputs many filenames. For each... (3 Replies)
Discussion started by: rodrimuino
3 Replies

4. Shell Programming and Scripting

How to recognize if a file still opened by any process?

Is there a way to tell for sure if a file currently is opened by any running process? I have a task to filter a text file which is produced by some long process. I have no way to communicate with that process, but I have access to a location, where that proces produce an output file. Need... (3 Replies)
Discussion started by: alex_5161
3 Replies

5. Shell Programming and Scripting

Pipe filtering

Hi, The thing is that sometimes I need to filter an arbitrary output given a condition (think on the "filter" function present on some programming languages) from the shell (I use sh/bash). I tried this: #!/bin/sh # Usage: filter command COMMAND=$1 shift 1 xargs "$@" -I "{}" sh -c "if... (3 Replies)
Discussion started by: tokland
3 Replies

6. Shell Programming and Scripting

how to filter out some paragraphs in a file

Hi, I am trying to filter out those paragraphs that contains 'CONNECT', 'alter system switch logfile'. That means say the input file is : ------------------------------------------------------- Wed Jun 7 00:32:31 2006 ACTION : 'CONNECT' CLIENT USER: prdadm CLIENT TERMINAL: Wed Jun 7... (7 Replies)
Discussion started by: cnlhap
7 Replies

7. Shell Programming and Scripting

Write in a file with pipe also in same line

hi, i want to write in a file the output of one command and pile also the same output like ls -lrt > some_file | wc -l (9 Replies)
Discussion started by: narang.mohit
9 Replies

8. Programming

read() blocks process until the stream is closed

Hi @all, i really stuck in programming a tool with bidirectional process communication (popen(cmd, "rw") ... something like that ;-)). Here is the code: if(pipe(p_stdin) != 0 || pipe(p_stdout) != 0) { fprintf(stderr, "Aufruf von pipe() schlug fehl.\n"); exit(1); } ... (6 Replies)
Discussion started by: jens.g
6 Replies

9. Shell Programming and Scripting

pass more than one input with pipe ("|")

Hi everyone, Is there any way to use the pipe "|" operator to pass more than one input? For instance do: (command1) (command2) | command3 with command 3 taking 2 parameters? or maybe using ``s? Thanks! Anthony (4 Replies)
Discussion started by: anthony.cros
4 Replies

10. Programming

how exactly does pclose work in C?

If i have the pointer to the pipe, which is given to pclose, what exactly does pclose do with it? (10 Replies)
Discussion started by: omega666
10 Replies

11. Programming

Problems understanding pipes

I am trying to create a csh clone, but am having problems implementing piped commands. Specifically, the below code simply hangs after input of ls | grep <text> It does however filter the output and display it correctly, but it appears that grep hasn't exited and my shell never comes back to the... (16 Replies)
Discussion started by: ab_tall
16 Replies

12. Shell Programming and Scripting

No. of underscores in a file name

Hi I want to filter my files which has more than 1 underscores in it.how can i achieve this. Ex: if my file name is a_b_c, a_b. my command should result only a_b_c Thanks Pracheth (10 Replies)
Discussion started by: pracheth
10 Replies

13. Shell Programming and Scripting

Creating a file from input stream

Hi, Need some help with creating a file from input steam. Meaning from following command myfunc should be able to store the input stream to a file. echo a b c | myfunc The file thus created should have - a b c Here's what I've tried in myfunc() but didn't help - myfunc() { cat... (3 Replies)
Discussion started by: nexional
3 Replies

14. Programming

Popen problem

Hello all, I am reading a huge zip file in POPEN process and then writting that to a normal file which of 2GB. Now the process is failing when I looked for the cause someother process comming in after I read my file and it is deleting the zip. But in theory the popen command should read the... (5 Replies)
Discussion started by: arunkumar_mca
5 Replies

15. Shell Programming and Scripting

Using input from one file to define scope of other file in Linux

Hi, I have two files A and B and would like to use A as a filter. Like this: File A.txt: Contains a list of IP addresses, each one occurring only once and in order: 10.0.0.1 10.0.0.2 10.0.0.4 10.0.0.8 File B.txt: Contains the same IP addresses with a corresponding ping time each (in... (16 Replies)
Discussion started by: Zooma
16 Replies