C 言語の型のデータから COBOL 型のデータに変換します。 cobput 関数には COBOL データ形式に応じて、多くの関数があります。
include "cbltypes.h" /* Includes cbltypes.h と cobgetput.h を含む */ void cobput_x1_compx(cbl_x1_compx_t *cbldata, cobuns8_t val); void cobput_x2_compx(cbl_x2_compx_t *cbldata, cobuns16_t val); void cobput_x4_compx(cbl_x4_compx_t *cbldata, cobuns32_t val); void cobput_x8_compx(cbl_x8_compx_t *cbldata, cobuns64_t val); void cobput_x1_comp5(cbl_x1_comp5_t *cbldata, cobuns8_t val); void cobput_x2_comp5(cbl_x2_comp5_t *cbldata, cobuns16_t val); void cobput_x4_comp5(cbl_x4_comp5_t *cbldata, cobuns32_t val); void cobput_x8_comp5(cbl_x8_comp5_t *cbldata, cobuns64_t val); void cobput_sx1_comp5(cbl_sx1_comp5_t *cbldata, cobs8_t val); void cobput_sx2_comp5(cbl_sx2_comp5_t *cbldata, cobs16_t val); void cobput_sx4_comp5(cbl_sx4_comp5_t *cbldata, cobs32_t val); void cobput_sx8_comp5(cbl_sx8_comp5_t *cbldata, cobs64_t val); void cobput_xn_comp5(cbl_x1_t *cbldata, cobuns8_t n, cobuns64_t vall); void cobput_xn_compx(cbl_x1_t *cbldata, cobuns8_t n, cobuns64_t val); void cobput_sxn_comp5(cbl_x1_t *cbldata, cobuns8_t n, cobs64_t val); void cobput_pointer(cbl_pointer_t *cbldata, void *val); void cobput_ppointer(cbl_ppointer_t *cbldata, PFR val);
| cbldata | COBOL データ項目や cobget 関数名で示されるデータ記述へのポインタ。 |
| val | COBOL データ項目 cbldata に入れられる値。 |
cobput_xn_compx 関数は、PIC X(3)のような記述のデータ項目にデータを格納します。
なし
COBOL プログラム
program-id. mycblprog.
copy "cbltypes.cpy".
01 myrec.
05 myrec-key cblt-x4-compx value 10.
procedure division.
call 'mycprog' using myrec-key
if myrec-key = 20
display "First call to 'mycblprog'"
else
display "Subsequent call to 'mycblprog'"
end-if
exit program
end program mycblprog.
C プログラム
#include "cbltypes.h"
void
mycprog(cbl_x4_compx_t *cbldata)
{
cobput_x4_compx(cbldata, cobget_x4_compx(cbldata) + 10);
}