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 }
私はここで立ち往生しています、何かアイデアはありますか?