gbatch_getredir - extract a redirection structure from a job structure

# 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.