BIO_f_bufferはバッファ用フィルタBIOの作成に使うことは紹介した。
/docs/man1.0.2/crypto/BIO_f_buffer.html
今回は、BIO_pushで連結し、バッファBIOのbufferとファイルBIOのfileにそれぞれ文字列を書き込んでから、BIO_flushでフラッシュを試す。
BIO_f_buffer.cで、
このように、連結して、それぞれ書き込んで、フラッシュ。
BIO_free_allでbufferを解放すると、連結しているfileも解放される。
$ vi BIO_f_buffer.c $ gcc -o BIO_f_buffer BIO_f_buffer.c -lcrypto $ ./BIO_f_buffer file = 0197b240 buffer = 0197b8c0 $ ls BIO_f_buffer BIO_f_buffer.c test.txt $ cat test.txt XYZABCDE$
fileのほうが先に書き込まれ、bufferは後になっている。
Sample/openssl/BIO_f_buffer/BIO_f_buffer/src/BIO_f_buffer at master · bg1bgst333/Sample · GitHub