BIO_f_buffer

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