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.

RELATED TO rfio_popen…

AUTHOR

LCG Grid Deployment Team