4

書き込み用のファイルを開こうとすると、次のエラーが発生しますAda.IO_Exceptions.Name_Error。プロシージャコールはAda.Text_IO.Open;です。ファイル名はC:\CC_TEST_LOG.TXTです。このファイルは存在しません。

これは、NTFSパーティション上のWindowsXPにあります。ユーザーには、ディレクトリを作成して書き込むための権限があります。ファイル名は、WIN32の最大パス長をはるかに下回っています。

 name_2 : String := "C:\CC_TEST_LOG.TXT"
 if name_2'last > name_2'first then
    begin
       Ada.Text_IO.Open(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;
4

1 に答える 1

4

「ファイルが存在しない」場合は、たとえばCreate、最初にファイルを作成する必要があります。「テキスト入出力の場合、プロシージャ、、およびには、 A.10.2節で説明されている追加の効果があります。」に注意してください。CreateOpenReset

これが前の質問に関連している場合は、詳細を提供すると役立つ場合があります。

于 2010-03-19T08:42:12.527 に答える