.png)
パイプに大量のデータを書き込む必要があります。io_submit/io_getevents
Linux呼び出しを使用して名前付きパイプに書き込むことはできますか?または、通常のファイルに対してのみ定義されます。私はパイプを通してAIOを説明する文書を見つけようとしましたが、見つかりませんでした。誰でも助けることができますか?
私の主な関心事は、aio_offset
オフセットstruct iocb
8096のパケットがオフセット4096のパケットの前に読み取り/書き込みで予約されている場合はどうなりますか?
答え1
Linux AIOは通常のファイルに限定されません。できるブロックデバイス用の特殊ファイルです。しかし、パイプが見つからないため、AIO書き込みはパイプで機能しないと予想しています。
IOCB_CMD_PWRITE
pwrite() は、buf で始まるバッファの count バイトをファイル記述子 fd のオフセットオフセットに書き込みます。ファイルオフセットは変更されませんでした。
fdが参照するファイルは検索可能でなければなりません。
AIOの鍵は、スレッドを使用せずに複数の直接IO書き込み(または読み取り)をブロックデバイスにキューに入れることです。
パイプの一括転送性能を向上させるには、パイプバッファサイズを4kBから64kB以下に増やすことをお勧めします。しかし、最新のLinuxではすでに64kBがデフォルトです。