ADA에서는 왜 글을 쓰기위한 파일을 열려고 시도 하는가?
문제
쓸 파일을 열려고 할 때 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
? ~이다 성공적으로 어떤 이유로 파일을 열었습니까? 아마도 오해의 소지가있을 수 있습니다. 실제로 프로그램이 실제로 성공했을 때 파일을 열지 못했다고 생각합니다.
제휴하지 않습니다 StackOverflow