NAME

gbatch_getredir - extract a redirection structure from a job structure


SYNOPSIS

#include <gbatch.h>

const apiMredir *gbatch_getredir(const apiBtjob *jobp, const unsigned indx)


DESCRIPTION

The function gbatch_getredir is used to extract a redirection structure from a job structure.

jobp is a pointer to a structure containing the details of the job.

indx is the redirection number required. This should be between 0 and 1 less than the number of redirections as given by the field jobp-h.bj_nredirs>.

Redirection Structure

The format of the redirection structure is as follows:

 typedef struct {
         unsigned char fd;
         unsigned char action;
         union  {
                  unsigned short arg;
                  const char *buffer;
         }  un;
 } apiMredir;

In this structure fd represents the file descriptor, and action gives the action required as follows:

RD_ACT_RD

Open file name given in un.buffer for reading.

RD_ACT_WRT

Open file name given in un.buffer for writing.

RD_ACT_APPEND

Append to file name given in un.buffer, opened for writing.

RD_ACT_RDWR

Open file name given in un.buffer for read/write.

RD_ACT_RDWRAPP

Open file name given in un.buffer for read/write and append.

RD_ACT_PIPEO

Open pipe to shell command given in un.buffer for output.

RD_ACT_PIPEI

Open pipe from shell command given in un.buffer for input.

RD_ACT_CLOSE

Close file descriptor.

RD_ACT_DUP

Duplicate file descriptor given in un.arg.


RETURN VALUES

The result is a pointer to a static structure containing the required redirection of the job NULL if the redirection number is invalid.

Note that the structure used will be overwritten by a further call to gbatch_getredir with different arguments, hence it should be copied if required.


SEE ALSO

gbatch_delarg(3), gbatch_delenv(3), gbatch_delredir(3), gbatch_getarg(3), gbatch_getdirect(3), gbatch_getenv(3), gbatch_getenvlist(3), gbatch_gethenv(3), gbatch_gettitle(3), gbatch_putarg(3), gbatch_putarglist(3), gbatch_putdirect(3), gbatch_putenv(3), gbatch_putenvlist(3), gbatch_putredir(3), gbatch_putredirlist(3), gbatch_puttitle(3), gbatch_setqueue(3).


COPYRIGHT

Copyright (c) 2009 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law.


AUTHOR

John M Collins, Xi Software Ltd.