5

与えられた mmap のコンストラクター宣言:

class mmap.mmap(fileno, length[, flags[, prot[, access[, offset]]]])

アクセスとオフセットの両方を指定するにはどうすればよいですか?

ドキュメントには次のように記載されています。

オプションのキーワード パラメータとして flags と prot の代わりに access を指定できます。prot と access の両方のフラグを指定するとエラーになります。このパラメーターの使用方法については、上記のアクセスの説明を参照してください。

だから私は次のようなことをしようとしました

  • mmap.mmap(file_no, length, offset, access=mmap.ACCESS_COPY)
  • mmap.mmap(file_no, length, access=mmap.ACCESS_COPY, offset=offset)

    m = mmap.mmap(f.fileno(), 4, access=mmap.ACCESS_COPY, offset=2)
    トレースバック (最新の呼び出しが最後):
    ファイル ""、行 1、mmap.error 内: [Errno 22] 無効な引数

  • mmap.mmap(file_no, length, mmap.ACCESS_COPY, offset)

しかし、私はそれを機能させることができません。なぜこれが私をそんなに混乱させるのですか?

4

2 に答える 2

3

このエラーはアクセスとは関係ありません。文書化されているよう に、オフセットはmmap.PAGESIZEまたはの倍数でなければなりませんmmap.ALLOCATIONGRANULARITY

于 2012-06-07T14:20:29.860 に答える
1

試してみてください:

m = mmap.mmap(f.fileno(), 4, access=mmap.ACCESS_COPY, offset=2 * mmap.ALLOCATIONGRANULARITY)
于 2012-06-07T14:23:36.880 に答える