2

Windows と Visual Studio でメモリ マップ ファイルを正常に使用しましたが、プロジェクトを mono と fedora 17 に移行しようとしています。私のコードは次のように単純です。

Var file = MemoryMappedFile.CreateNew(@"/home/xxx/xxx/filename", 1024*1024);

Visual Studio とは異なり、ファイル名には既存のファイルを配置する必要があります。そうしないと、File NofoundException が発生します。「Capacity 例外」が発生していましたが、正確なファイル サイズでメソッドを呼び出すと、新しい例外が発生します。

Mono.Unix.UnixIOException: File exists [EEXIST].
at Mono.Unix.UnixMarshal.ThrowExceptionForLastError () [0x00000]
    in /builddir/build/BUILD/mono-2.10.8/mcs/class/Mono.Posix/Mono.Unix/UnixMarshal.cs:456
at System.IO.MemoryMappedFiles.MemoryMapImpl.Open (System.String path, FileMode mode, Int64 capacity, MemoryMappedFileAccess access) [0x0006b]
    in /builddir/build/BUILD/mono-2.10.8/mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedFile.cs:133
at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile (System.String path, FileMode mode, System.String mapName, Int64 capacity, MemoryMappedFileAccess access) [0x00055]
    in /builddir/build/BUILD/mono-2.10.8/mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedFile.cs:475
at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateNew (System.String mapName, Int64 capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, System.IO.MemoryMappedFiles.MemoryMappedFileSecurity memoryMappedFileSecurity, HandleInheritability handleInheritability) [0x00000]
    in /builddir/build/BUILD/mono-2.10.8/mcs/class/System.Core/System.IO.MemoryMappedFiles/MemoryMappedFile.cs:525
at Unixtest.MainClass.Inicialize () [0x00009] 
    in /home/xxx/xxx/Unixtest/Main.cs:50 }

私はここで立ち往生しています、何かアイデアはありますか?

4

0 に答える 0