長い間、私はchar[]
ファイルの読み取りと書き込みに単純なバッファーを使用していました。
私が次のような非常に単純な関数を持っていると仮定しましょう:
int f(int fd_in, int fd_out)
{
char buf[4096];
char* bufp = buf;
ssize_t ret, wr;
ret = read(fd_in, buf, sizeof(buf));
/* ... */
while (ret > 0)
{
wr = write(fd_out, bufp, ret);
/* ... */
}
return wr;
}
今、私はアライメントの問題をもう少し認識しているので、バッファがにアライメントされるため、これは実際には最適ではないと思い始めていますchar
。
「より強い」アラインメントを得るために、バッファに別の(より大きな)積分型を使用することは合理的であると思われますか?読み取り/書き込みがより最適になりますか?メリットはどこまで行きますか?posix_memalign
整数型がより良い解決策を達成できるよりもさらに多くの整列を得るために使用していますか?