bio(7) - wariua/manpages-ko GitHub Wiki

NAME

bio - ๊ธฐ๋ณธ(Basic) I/O ์ถ”์ƒํ™”

SYNOPSIS

#include <openssl/bio.h>

DESCRIPTION

BIO๋Š” I/O๋ฅผ ์ถ”์ƒํ™”ํ•œ ๊ฒƒ์œผ๋กœ ๊ธฐ๋ฐ˜ I/O์˜ ์—ฌ๋Ÿฌ ์„ธ๋ถ€ ์‚ฌํ•ญ๋“ค์„ ์‘์šฉ์—๊ฒŒ ๊ฐ์ถฐ ์ค€๋‹ค. ์‘์šฉ์—์„œ I/O์— BIO๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด SSL ์—ฐ๊ฒฐ, ๋น„์•”ํ˜ธํ™” ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ, ํŒŒ์ผ I/O๋ฅผ ํˆฌ๋ช…ํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

BIO์—๋Š” ๋‘ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ, ์›์ฒœ/์‹ฑํฌ BIO์™€ ํ•„ํ„ฐ BIO์ด๋‹ค.

์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ ์›์ฒœ/์‹ฑํฌ BIO๋Š” ๋ฐ์ดํ„ฐ์˜ ์›์ฒœ ๋ฐ/๋˜๋Š” ์‹ฑํฌ(sink)์ด๋‹ค. ์˜ˆ๋กœ๋Š” ์†Œ์ผ“ BIO์™€ ํŒŒ์ผ BIO๊ฐ€ ์žˆ๋‹ค.

ํ•„ํ„ฐ BIO๋Š” ํ•œ BIO์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ๋‹ค๋ฅธ BIO๋‚˜ ์‘์šฉ์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๊ณ  (๊ฐ€๋ น ๋ฉ”์‹œ์ง€ ๋‹ค์ด์ œ์ŠคํŠธ BIO) ๋ณ€ํ™˜๋  ์ˆ˜๋„ ์žˆ๋‹ค (๊ฐ€๋ น ์•”ํ˜ธํ™” BIO). ์ˆ˜ํ–‰ํ•˜๋Š” I/O ๋™์ž‘์— ๋”ฐ๋ผ ํ•„ํ„ฐ BIO์˜ ํšจ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•”ํ˜ธํ™” BIO๋Š” ์“ฐ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ณ  ์ฝ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณตํ˜ธํ™” ํ•  ๊ฒƒ์ด๋‹ค.

BIO๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์Šฌ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. (๋‹จ์ผ BIO๋Š” ํ•œ ๊ฐœ์งœ๋ฆฌ ์‚ฌ์Šฌ์ด๋‹ค.) ์‚ฌ์Šฌ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•œ ๊ฐœ์˜ ์›์ฒœ/์‹ฑํฌ BIO์™€ ํ•œ ๊ฐœ ์ด์ƒ์˜ ํ•„ํ„ฐ BIO๋กœ ์ด๋ค„์ง„๋‹ค. ์ฒซ ๋ฒˆ์งธ BIO์—์„œ ์ฝ๊ฑฐ๋‚˜ ์“ด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ์Šฌ์„ ๊ฑฐ์ณ ๋(์ผ๋ฐ˜์ ์œผ๋กœ ์›์ฒœ/์‹ฑํฌ BIO)๊นŒ์ง€ ๊ฐ„๋‹ค.

(๋ฉ”๋ชจ๋ฆฌ BIO ๊ฐ™์€) ์–ด๋–ค BIO๋“ค์€ BIO_new() ํ˜ธ์ถœ ์งํ›„์— ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. (ํŒŒ์ผ BIO ๊ฐ™์€) ๋‹ค๋ฅธ BIO๋“ค์€ ์–ด๋–ค ์ถ”๊ฐ€ ์ดˆ๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ๊ทธ๋Ÿฐ BIO๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™” ํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์กฐ ํ•จ์ˆ˜๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

BIO ์‚ฌ์Šฌ์— BIO_free()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด BIO ํ•œ ๊ฐœ๋งŒ ํ•ด์ œํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๋‹จ์ผ BIO์— BIO_free_all()์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๋ฒ„๋ฆฐ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๋ฉด BIO_free()๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ๊ณผ ํšจ๊ณผ๊ฐ€ ๊ฐ™๋‹ค.

๋ณดํ†ต type ์ธ์ž๋Š” BIO_METHOD ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋กœ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ๋Ÿฐ ํ•จ์ˆ˜๋“ค์—๋Š” ๋ช…๋ช… ๊ด€ํ–‰์ด ์žˆ๋Š”๋ฐ, ๋ณดํ†ต ์›์ฒœ/์‹ฑํฌ BIO๋Š” BIO_s_*()์ด๊ณ  ํ•„ํ„ฐ BIO๋Š” BIO_f_*()์ด๋‹ค.

EXAMPLE

๋ฉ”๋ชจ๋ฆฌ BIO ๋งŒ๋“ค๊ธฐ:

BIO *mem = BIO_new(BIO_s_mem());

SEE ALSO

BIO_ctrl(3), BIO_f_base64(3), BIO_f_buffer(3), BIO_f_cipher(3), BIO_f_md(3), BIO_f_null(3), BIO_f_ssl(3), BIO_find_type(3), BIO_new(3), BIO_new_bio_pair(3), BIO_push(3), BIO_read_ex(3), BIO_s_accept(3), BIO_s_bio(3), BIO_s_connect(3), BIO_s_fd(3), BIO_s_file(3), BIO_s_mem(3), BIO_s_null(3), BIO_s_socket(3), BIO_set_callback(3), BIO_should_retry(3)

COPYRIGHT

Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.


2017-12-31