The LBR$PUT_RECORD routine writes a data record beginning at the next free location in the library. Format LBR$PUT_RECORD library_index ,bufdes ,txtrfa [, mod_size]
1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: 0 Longword condition value. Most utility routines return a condition value. Condition values that this routine can return are listed under Condition Values Returned.
2 – Arguments
library_index OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference Library control index returned by the LBR$INI_CONTROL routine. The library_index argument is the address of the longword that contains the index. bufdes OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Record to be written to the library. The bufdes argument is the address of a string descriptor pointing to the buffer containing the output record. On Integrity servers and Alpha libraries, the symbolic maximum record size is ELBR$_MAXRECSIZ. txtrfa OpenVMS usage:vector_longword_unsigned type: longword (unsigned) access: write only mechanism: by reference Record's file address (RFA) of the module header. The txtrfa argument is the address of a 2-longword array receiving the RFA of the newly created module header upon the first call to LBR$PUT_RECORD. mod_size OpenVMS usage:byte_count type: longword (unsigned) access: read only mechanism: by value The value from mod_size is read on the first call to this routine and ignored otherwise. The value specifies the size of the module to be entered so that contiguous space is allocated within the library for that module. This argument is ignored for non-ELF object libraries and for data-reduced ELF object libraries. The LBR$PUT_END routine is still required to terminate the byte stream and close off the module.
3 – Description
If this is the first call to LBR$PUT_RECORD, this routine first writes a module header and returns its RFA to the 2-longword array pointed to by txtrfa. LBR$PUT_RECORD then writes the supplied data record to the library. On subsequent calls to LBR$PUT_RECORD, this routine writes the data record beginning at the next free location in the library (after the previous record). The last record written for the module should be followed by a call to LBR$PUT_END.
4 – Condition Values Returned
LBR$_ILLCTL Specified library control index not valid. LBR$_LIBNOTOPN Specified library not open.