RFIO_POPEN

Section: Rfio Library Functions (3)
Updated: $Date: 2008/09/24 11:25:01 $
Index Return to Main Contents
 

NAME

rfio_popen, rfio_pclose - start a process and open a pipe to it  

SYNOPSIS

#include <sys/types.h>
#include "rfio_api.h"

FILE *rfio_popen (const char *command, const char *type);

int rfio_pclose (FILE *fs);  

DESCRIPTION

rfio_popen starts a process and opens a pipe to it.

command is a pointer to a string specifying the shell command to be executed. type is a mode indicator for the pipe. One of the characters "r" or "w".

rfio_pclose waits for the forked process to terminate and returns the exit status of the command.  

EXAMPLE

        int c;
        FILE *rf;

        rf = rfio_popen (command, "r");
        if (rf == NULL) {
                rfio_perror ("rfio_popen");
                exit (1);
        }
        while ((c = rfio_pread (buf, 1, sizeof(buf), rf)) > 0) {
                ...
        }
        c = rfio_pclose (rf);
 

RETURN VALUE

This routine returns NULL if the operation failed or a non-NULL pointer to a FILE structure if the operation was successful. If it fails, serrno variable is set appropriately.  

ERRORS

ENOMEM
Not enough memory.
EINVAL
The mode provided is invalid.
ECONNRESET
Connection reset by peer
ETIMEDOUT
Connection timed out
ECONNREFUSED
Connection refused
EHOSTUNREACH
No route to host
SENOSHOST
Host unknown.
SENOSSERV
Service unknown.
SEUMSG2LONG
Command string too long.
SECOMERR
Communication error.
 

SEE ALSO

rfio_pread(3), rfio_pwrite(3)  

AUTHOR

LCG Grid Deployment Team