FIX: 일시 중지 명령 입력된 리디렉션 포트란에

만료된 KB 콘텐츠 고지 사항

이 문서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 작성되었습니다. 따라서 이 문서는 “있는 그대로" 제공되며 더 이상 업데이트되지 않습니다.

증상

Microsoft 포트란 버전 4.0 부터는 일시 중지 명령을 사용 하면 프로그램 실행이 중단 되는 동안 운영 체제 명령을 실행할 수 있습니다. 프로그램 입력 키보드에서 파일로 리디렉션되는, 프로그램 리디렉션 파일에서 읽는 경우 또는 프로그램을 일시 문을 여러 개 포함 하는 경우 PAUSE 문을 제대로 작동 하지 않습니다.

상태

Microsoft는 포트란 버전에서 문제가이 확인 4.x 및 5.0. 이 문제는 포트란 버전 5.1에서에서 수정 되었습니다.

자세한 내용

파일에서 읽은 데이터만 PAUSE 문에 대해 한 MS-DOS 명령 파일에서 리디렉션된 입력을 하는 경우 프로그램이 올바르게 작동 합니다. 다음과 같은 간단한 프로그램 예를 보여 줍니다.

샘플 코드

      write(*,*) 'Before PAUSE'      pause
write (*,*) 'After PAUSE'
end

Data file, TEST.DAT:

Ver

Command line:

C:\> TEST < TEST.DAT

Output:

Before PAUSE
Pause - Please enter a blank line (to continue) or a
DOS command.

MS-DOS Version x.xx

After PAUSE

프로그램을 다른 일시 문을 추가 되 면 첫 번째 일시 중지에 대 한 명령만 실행 됩니다. 첫 번째 일시 발견 한 경우 리디렉션 파일 끝까지 읽는 프로그램이 같습니다. 읽기 문은 다음 예제와 같이 일시 문 뒤에 프로그램에 추가 되 면 해당 프로그램 파일의 끝에 다시 읽습니다. 이 경우 오류 6501이 생성 됩니다. 코드:
      integer i      write(*,*) 'Before PAUSE'
pause
write (*,*) 'After PAUSE'
read(*,*) i
write (*,*) i
end

데이터:
Ver
1
출력:
일시 중지 하기 전에
일시 중지-빈 줄 (계속) 또는 DOS 명령을 입력 하십시오.


MS-DOS 버전 x.xx입니다.


일시 중지 후
런타임 오류 F6501: READ(CON)
-파일의 끝
읽기 문을 일시 문 앞 이면 DOS 명령 실행 되지 않습니다.


코드:
      integer i      read(*,*) i
write (*,*) i
write(*,*) 'Before PAUSE'
pause
write (*,*) 'After PAUSE'
end

데이터:
1
Ver
출력:
1


일시 중지 하기 전에
일시 중지-(계속)에 빈 줄을 입력 하십시오 또는


DOS 명령입니다.


일시 중지 후
이러한 문제는 되지 읽기 문 같은 방법으로 리디렉션 파일 데이터를 읽는 일시 명령에 의해 발생 합니다.

해결 방법

둘 이상의 일시 문 또는 일시 정지 및 읽기 문 조합을 사용 하 여 프로그램에 리디렉션을 사용 하지 마십시오.


읽기 문에 대 한 입력에 사용 되는 파일을 열려면 열기 명령을 사용 합니다.


일시 중지 문 대신 체제나 SPAWNLP C 함수를 호출을 사용 하 여 DOS 명령 실행. 이러한 함수에 대 한 자세한 내용은 버전 5.00 또는 DEMOEXEC는 "포트란 고급 항목" 수동 86 페이지를 참조 하십시오. 프로그램 버전에 포함 된 4.x 및 포트란에 5.00.


이전 버전의 포트란 일시 문 기능이 다르기 때문에이 문제가 발생 하지 않습니다. 이전 버전에서는 일시 중지 한 후 DOS 명령을 실행할 수 있습니다.
속성

문서 ID: 67098 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백