ILE C/C++ Run-Time Library Functions


_Rindara() -- Set Separate Indicator Area

Format

#include <recio.h>
 
void _Rindara(_RFILE *fp, char *indic_buf);

Language Level: ILE C Extension

Threadsafe: No.

Description

The _Rindara() function registers indic_buf as the separate indicator area to be used by the file specified by fp. The file must be opened with the keyword indicators=Y on the _Ropen() function. The DDS for the file should specify also that a separate indicator area is to be used. It is generally best to initialize a separate indicator area explicitly with '0' (character) in each byte.

Note:
The indic_buf parameter string must be EBCIDIC, even if the program is compiled using LOCALETYPE(*LOCALEUTF).

The _Rindara() function is valid for display, ICF, and printer files.

Return Value

The _Rindara() function returns void. See Table 12 and Table 14 for errno settings.

Example that uses _Rindara()


#include <stdio.h>
#include <recio.h>
#include <stdlib.h>
#include <string.h>
#define  PF03     2
#define  IND_OFF '0'
#define  IND_ON  '1'
 
int main(void)
{
  char       buf[40];
  int        rc = 1;
  _SYSindara ind_area;
  _RFILE     *purf;
  _RFILE     *dailyf;
  /* Open purchase display file and daily transaction file          */
  if ( ( purf = _Ropen ( "MYLIB/T1677RD3", "ar+,indicators=y" )) == NULL )
  {
      printf ( "Display file did not open.\n" );
      exit ( 1 );
  }
  if ( ( dailyf = _Ropen ( "MYLIB/T1677RDA", "wr,commit=y") ) == NULL )
  {
      printf ( "Daily transaction file did not open.\n" );
      exit ( 2 );
  }
  /* Associate separate indicator area with purchase file           */
  _Rindara ( purf, ind_area );
  /* Select purchase record format */
  _Rformat ( purf, "PURCHASE" );
  /* Invite user to enter a purchase transaction.                   */
  /* The _Rwrite function writes the purchase display.              */
  _Rwrite ( purf, "", 0 );
  _Rreadn ( purf, buf, sizeof(buf), __DFT );
  /* While user is entering transactions, update daily and          */
  /* monthly transaction files.                                     */
  while ( rc && ind_area[PF03] == IND_OFF )
  {
    rc = (( _Rwrite ( dailyf, buf, sizeof(buf) ))->num_bytes );
  /* If the databases were updated, then commit transaction         */
  /* otherwise, rollback the transaction and indicate to the        */
  /* user that an error has occurred and end the application.       */
    if ( rc )
    {
        _Rcommit ( "Transaction complete" );
    }
    else
    {
        _Rrollbck ( );
        _Rformat ( purf, "ERROR" );
    }
    _Rwrite ( purf, "", 0 );
    _Rreadn ( purf, buf, sizeof(buf), __DFT );
  }
 
  _Rclose ( purf );
  _Rclose ( dailyf );
}

Related Information


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]