COBOL2002 言語 拡張仕様編
int main(){
char DATABUF[50];
strncpy(DATABUF, "abcd", 5);
SampleTP(DATABUF);
: IDENTIFICATION DIVISION .
PROGRAM-ID. 'SampleTP'.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DYNAMIC LENGTH STRUCTURE C-STRING IS C-STATIC-STRUCTURE .
DATA DIVISION.
LINKAGE SECTION.
01 DYNADATA PIC X DYNAMIC LENGTH C-STRING .
PROCEDURE DIVISION USING DYNADATA .
DISPLAY DYNADATA. *> 'abcd'が表示される ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DYNAMIC LENGTH STRUCTURE C-STRING IS C-STATIC-STRUCTURE .
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DYNADATA PIC X DYNAMIC LENGTH C-STRING LIMIT 20 .
PROCEDURE DIVISION .
MOVE 'abcde' TO DYNADATA. *> DYNADATAには'abcde'+終端文字(X'00')が格納される
CALL 'csub' USING DYNADATA.int csub(char *data1){
/* data1はCOBOL側のDYNAMDATAの領域を指す。 */
/* DYNAMDATA の実領域は21バイトであるが,末尾は終端文字であるため*/
/* data1に対する操作は20バイト以内で行うこと */
:All Rights Reserved. Copyright (C) 2003, 2017, Hitachi, Ltd.