%CNV_PI
Convert portable integer data to native form
WSupported on Windows
|
USupported on Unix
|
VSupported on OpenVMS
|
NSupported in Synergy .NET
|
native = %CNV_PI(portable_int)
Return value
native
The converted data in native form. (i)
Arguments
portable_int
The portable integer field to convert. (a)
Discussion
%CNV_PI converts a portable integer created by a previous %CNV_IP intrinsic function back to native form. It always returns a 32-bit integer on 32-bit runtimes and a 64-bit integer on 64-bit runtimes and OpenVMS.
When you use the integer data type, your data files are not portable between big-endian and little-endian machines. (If you don’t know what endian type your machine is, see Endian types) Once you’ve used the %CNV_IP intrinsic function to convert your data to portable form and moved it to another machine, you can use %CNV_PI to convert your data back to native form.
For integer data in ISAM files on Windows and Unix, we recommend using the portable integer specification, I=pos:len (or PORT_INT pos:len in XDL form). |
Examples
The following routine reads a portable integer from a file and returns it as a native integer.
function rd_portable ch ,n ;Open channel size ,n ;Size of integer record p_dat ,a8 ;Portable integer data int ,i4 proc gets(ch, p_dat(1:size)) ;Read portable data from file int = %cnv_pi(p_dat(1:size)) ; convert back to integer freturn (int) ; and return it endfunction