ADA에서는 왜 글을 쓰기위한 파일을 열려고 시도 하는가?

StackOverflow https://stackoverflow.com/questions/2413549

  •  19-09-2019
  •  | 
  •  

문제

쓸 파일을 열려고 할 때 ada.io_exceptions.name_error를 얻습니다.

파일 이름은 "c : cc_test_log.txt"입니다. 이 파일은 존재하지 않습니다.

이것은 NTFS 파티션의 Windows XP에 있습니다. 사용자는 디렉토리를 작성하고 쓸 권한이 있습니다. 파일 이름은 Win32 Max 경로 길이 아래에 있습니다.

 name_2 : String := "C:\CC_TEST_LOG.TXT"
 if name_2'last > name_2'first then
    begin
       Ada.Text_IO.Create(file, Ada.Text_IO.Out_File, name_2);
       Ada.Text_IO.Put_Line(
          "CC_Test_Utils: LogFile: ERROR: Open, File "
          & name_2);
       return;
    exception
       when The_Error : others =>
          Ada.Text_IO.Put_Line(
             "CC_Test_Utils: LogFile: ERROR: Open Failed; "
              & Ada.Exceptions.Exception_Name(The_Error)
              & ", File " & name_2);
    end;
 end if;
도움이 되었습니까?

해결책

내 머리 꼭대기에서 :

  • 당시 Create 호출됩니다. file 다른 열린 파일과 아직 관련이 없습니까?
  • 어떤 컴파일러를 사용하고 있습니까? Gnat은 Mingw 기반이며 Windows "C : "디자이터를 좋아하지 않을 수 있습니다. 그 부분을 꺼내서 파일을 생성하는지 확인하십시오 (어딘가).
  • Xandy가 언급했듯이 파일은 이미 다른 프로그램에서 열 수 있습니다. 저것 Create 호출은 파일에 대한 독점 액세스가 필요합니다.

따로, 그 put_line의 요점은 무엇입니까? Create? ~이다 성공적으로 어떤 이유로 파일을 열었습니까? 아마도 오해의 소지가있을 수 있습니다. 실제로 프로그램이 실제로 성공했을 때 파일을 열지 못했다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top