私のソフトウェアでは、 IPC にPF_UNIXソケットを使用しています。
これまでは、バッファmalloc
に書き込む前にデータを準備するために(プレ) バッファ ビアを割り当てる必要がありましwrite
た。
今、私は疑問に思っていました:
socket-fd には、たとえば、すでにバッファがあります。64kbなので、次のようにデータを直接準備してそのバッファに書き込むことができないのはなぜですか:
// stupid example-code, don't copy
void *fd_buffer = get_buffer_of_fd(fd)
fd_buffer[0] = 1
fd_buffer[1] = 2
fd_buffer[2] = 3
memcpy(fd_buffer, 5, 5)
...
commit_buffer_of_fd(fd, xbytes); // xBytes is DYNAMIC and not known until this point!!
これが可能であれば、プリバッファーへのコピー、プリバッファーからソケットへの書き込み、さらにはプリバッファーの割り当ての往復を節約できます。
それが可能かどうか誰にも考えがありますか?