을 사용하여 JCL에서 c 프로그램으로 매개 변수 전달 JCL에서 SYSIN DD *의 매개 변수를 c 프로그램에 전달하는 방법에 대한 예제를 누구든지 보여줄 수 있습니까?SYSIN DD *
필자의 JCL 프로그램이 PARM 옵션을 사용하여 c 프로그램에 매개 변수를 전달했지만 PARM 옵션의 문자 수가 100 자로 제한되어 JCL에서 SYSIN DD * 옵션을 대신 사용해야합니다. 그러나, 내 오래된 C 프로그램 argv paramater 전달 스타일을 사용하고 SYSIN DD * 사용할 때 여전히 적용 할 수 있는지 모르겠습니다.
이 내 오래된 JCL 코드는 모습입니다 :
/ SET P1='RBR1 FIRBS.AIC_REHBFG_FDG.BM '
// SET P2='BGM.LOL_FDSG '
// SET P3='"" '
// SET P4='X F GMHKD'
//ST01 EXEC PGM=VCMBGJF,
//PARM='&P1.&P2.&P3.&P4'
이 나의 새로운 JCL 코드는 모습입니다처럼 :
//ST01 EXEC PGM=VCMBGJF
//SYSIN DD *
RBR1 FIRBS.AIC_REHBFG_FDG.BM
BGM.LOL_FDSG
""
X F GMHKD
/*
@ user2718969,'SYSIN DD *'는 무제한의 텍스트 행을 허용해야합니다. zOs의 관점에서 보면 SYSIN은 단지 하나의 파일 일뿐입니다. – JackCColeman
고맙겠지 만 SYSIN DD * 다음 줄에는 줄 당 100 자 이상이 있고 각 줄마다 공백이 있으므로 매개 변수를 전달하는 PARM 옵션은 실제로 가능하지 않다고 말합니다. 또한, 당신은 SYSINN DD를 * 후 라인에서 구문 분석을 시작할 것이라고 C의 fpopen 함수를 사용하여 SYSIN 여는 시도 할 수 있다고 언급? '\ n'delimeter로 각 줄을 파싱하고 '! = EOF'가있는 파일의 끝이 아닌지 테스트하십시오. 예제를 제공해 주시겠습니까 .. 죄송합니다. 다시 작성해야합니다. 5 분 내에 – ineedhelp
@ user2718969 내에서만 편집 할 수 있다는 것을 알지 못했습니까? parms를 sscanf를 사용하여 텍스트 문자열로 읽는 코드가 있어야합니까? 파일을 읽을 때 fscanf (파일의 경우) 또는 scanf (stdin의 경우) 만 사용하면 동일한 코드가 작동해야합니다. scanf는 새 줄을 공백으로 처리하므로 파싱 지점에서 하나의 긴 문자열을 파싱합니다. scanf에 너무 복잡해지면 SYSIN을 텍스트 파일로 읽고 구문 분석 할 코드를 작성하십시오. 'SYSIN DD *'다음에 나오는 줄은 파일로 간주되므로 실제로 // SYSIN DD * 줄을 "읽지"않습니다. 또한 키워드 parms, X = 3 등을 정의하는 것을 고려하십시오. 이것은 훨씬 쉽습니다. – JackCColeman