SDEforBatchのPro*C/C++の生成コードにて、ファイル出力用の転記について、メモリ破壊を招くコードが生成されているように見えます。
FILE出力処理を記載したiotに対してソース生成を行うと、以下のようなコードが生成されます。
----------------------------------------
memcpy(stFouTEST_ECPG_D2F_OUT_F->F_JOB_ID, gBfJobid, sizeof(stFouTEST_ECPG_D2F_OUT_F->F_JOB_ID));
memcpy(stFouTEST_ECPG_D2F_OUT_F->F_JSTEP_ID, gBfJobstepid, sizeof(stFouTEST_ECPG_D2F_OUT_F->F_JSTEP_ID));
stFouTEST_ECPG_D2F_OUT_F->F_DATA1 = pTinAlCur000->F02_DATA1;
memcpy(stFouTEST_ECPG_D2F_OUT_F->F_DATA2, pTinAlCur000->F02_DATA2, sizeof(stFouTEST_ECPG_D2F_OUT_F->F_DATA2));
memcpy(stFouTEST_ECPG_D2F_OUT_F->F_DATA3, pTinAlCur000->F06_DATA3_C, sizeof(stFouTEST_ECPG_D2F_OUT_F->F_DATA3));
----------------------------------------
memcpyで入力用の変数に対して、入力用の変数と同じサイズ分コピーしているのですが、メモリ破壊の可能性があるかと思います。
「サイズ -1」をコピーしないといけないのではないでしょうか?
memcpy(stFouTEST_ECPG_D2F_OUT_F->F_JOB_ID, gBfJobid, sizeof(stFouTEST_ECPG_D2F_OUT_F->F_JOB_ID));
↓
memcpy(stFouTEST_ECPG_D2F_OUT_F->F_JOB_ID, gBfJobid, sizeof(stFouTEST_ECPG_D2F_OUT_F->F_JOB_ID)-1);