2016-11-21 7 views
0

에서 SYSIN으로부터 ACCEPT 데이터를 제공하기 위해 SYSIN DD을 사용하여 JCL의 COBOL 프로그램을 EXEC한다고 가정 해 봅시다.서브 프로그램

해당 프로그램이 COBOL 서브 프로그램 CALLs이고 아직 입력에서 일부 데이터를 사용할 수있는 경우 서브 프로그램은 ACCEPT 문을 사용하여 읽을 수 있습니까?

JCL에서 호출 된 실행 단위의 주 프로그램에서만 SYSIN을 액세스 할 수 있습니까?

편집 : 이것이 잘못된 코딩 방법이라고 생각합니다. 나는 그것을 사용하려고하지 않으며, 더 나은 대안을 필요로하지 않는다. (주 데이터에서 입력 장치 데이터를 읽고 서브 프로그램 (LINKAGE)을 통해 전달하는 것과 같은) 나는 알고있다.

사실 나는 COBOL 코드를 작성하지는 않지만 그것을 연구/처리하고 있으므로 COBOL 의미에 대한 이해를 높이기 위해 "코너 케이스"동작에 관심이 있습니다.

+0

JCL에 대해 많이 알지는 못하지만 일반적으로 COBOL 주 프로그램은 아무 것도 "차단"하지 않습니다. 데이터를 얻는 방법에 따라 달라질 수 있습니다. 그것이 평범한'ACCEPT' (SYSIN에서)이면'ACCEPT'는 다음 줄 바꿈 때까지 읽힐 것입니다. 이것은 다음과 같습니다. 당신은 이미 무엇을 시도 했습니까? COBOL 코드는 실제로 소스를 어떻게 가져 옵니까? –

+1

"SYSIN DD"절이 없습니다. DD는 JCL 문이며, SYSIN은 JCL에 지정된 자원을 내부적으로 해당 이름을 사용하는 프로그램에 연결하는 이름입니다. 이것은 당신의 프로그램이 필요한 것보다 훨씬 더 어려운 일을 이해할 수있는 끔찍한 생각 일 것입니다. SYSIN에 여러 "기능 코드"를 정의하려면 ACCEPT (더 좋고 평범하게 읽는 것) 프로그램을 작성하고 여러 곳에서 호출하십시오. 기능이 분리 된 경우 특정 DD를 사용하십시오. 다른 방법들. 당신이 제안한 것을 시도하지 마십시오. –

+1

아니, 나는 그것이 무엇을 할 것인지 모른다. SYSIN이 작동하려면 "특별"한 것으로 충분할 수도 있지만, 시도한 사람을 만나지 않은 것은 좋지 않습니다. –

답변

0

주 프로그램에서 ACCEPT를 사용할 수 있습니다. 정보를 보내려면 사본을 사용해야합니다.

+0

답변 해 주셔서 감사합니다. 나는 당신과 동의하는 경향이 있지만 귀하의 주장을 뒷받침 할 수있는 참조 (매뉴얼, 웹 페이지 ...)가 있습니까? 우리 모두는 달리하는 것이 나쁜 습관이라고 동의했다. 이 질문은이 코너 케이스의 실제 런타임 동작에 관한 것입니다. – oparisy