私は、ポータブルCまたはC++でメモリマップファイルを使用することが可能かどうかを疑問に思っていました。私は、私が知る限り、どの標準もメモリマップされたファイルの存在を認識していないからではないと思います。CまたはC++標準でメモリマップファイルの存在を認識していますか?
メモリマッピングを使用すると、2つのアドレスに同じバイトを持つことができます。また、最初にオブジェクトを構築せずにメモリを使用することもできないと思います(char*
を除く)。したがって、既存のマップされたファイルを、未定義の動作であるべき整数の配列として扱う場合。
メモリマップされたファイルと標準に関する状況は何ですか?
標準AFAIKでは_memory mapped files_についての考え方はありません。 –
C++ 14標準の* memory mapped *を検索すると、0の結果が得られます。 – NathanOliver
'malloc()'によって割り当てられたメモリは、どのような型の配列でも使用できます(割り当てが十分大きい場合)。C11ドラフト標準n1570、* 6.5式6有効型*を参照してください。 'mmap()'によって割り当てられたメモリで同じことをするべきではない理由はありません。 – EOF