TO2_convertEBCDICtoBinPID: Convert EBCDIC string to PID
This function converts an EBCDIC string persistent identifier (PID) to a binary PID.
Format
#include <tpf/c_to2.h>
int TO2_convertEBCDICtoBinPID(const char EBCDIC_pid_ptr[64],
TO2_ENV_PTR env_ptr,
TO2_PID_PTR binary_pid_output,
int *pid_output_length); - EBCDIC_pid_ptr
- The pointer to a field that contains 64 EBCDIC characters that will be converted to a binary PID.
- env_ptr
- The pointer to the environment as returned by the TO2_createEnv function.
- binary_pid_output
- The pointer to a field that is 32 characters long in which the converted binary PID will be stored.
- pid_input_length
- The pointer to the length of the EBCDIC PID to be converted. On return, this field will be overlaid with the binary length of the converted PID.
Normal return
The normal return is a positive value.
Error return
An error return is indicated by a zero return code. When zero is returned, use the TO2_getErrorCode function to determine the specific error code. For more information, see Error handling.
The following error codes are
common for this function:
- TO2_ERROR_DATA_LGH
- TO2_ERROR_ENV
- TO2_ERROR_PID
- TO2_ERROR_ZERO_PID
Programming considerations
This function does not use z/TPF transaction services on behalf of the caller.
Examples
The following example converts
an EBCDIC string PID to a binary PID.
#include <tpf/c_to2.h> /* Needed for TO2 API functions */
#include <stdio.h> /* APIs for standard I/O functions*/
TO2_ENV_PTR env_ptr; /* Pointer to the TO2 environment */
TO2_PID outputPID;
char input_PID[64];
int pid_length;
⋮
/**********************************************************************/
/* Make sure that input_PID is set to the EBCDIC string PID you want */
/* to convert before this code. */
/**********************************************************************/
pid_length = sizeof(input_PID);
if (TO2_convertEBCDICtoBinPID(inputPID,
env_ptr,
&output_PID,
&pid_length) == TO2_ERROR)
{
printf("TO2_convertEBCDICtoBinPID failed!\n");
process_error(env_ptr);
}
else
{
printf("TO2_convertEBCDICtoBinPID successful!\n");
}