bzero(3) - wariua/manpages-ko GitHub Wiki
bzero, explicit_bzero - λ°μ΄νΈ μ΄μ 0μΌλ‘ μ±μ°κΈ°
#include <strings.h>
void bzero(void *s, size_t n);
#include <string.h>
void explicit_bzero(void *s, size_t n);
bzero()
ν¨μλ s
κ° κ°λ¦¬ν€λ μμΉμμ μμνλ λ©λͺ¨λ¦¬ n
λ°μ΄νΈμ 0μ ('\0'μ λ΄μ λ°μ΄νΈλ€μ) κΈ°λ‘ν΄μ λ°μ΄ν°λ₯Ό μ§μ΄λ€.
explicit_bzero()
ν¨μλ bzero()
μ κ°μ μΌμ μννλ€. bzero()
μ λ€λ₯Έ μ μ μ»΄νμΌλ¬μμ μ§μ°κΈ° λμμ΄ "λΆνμ"νλ€κ³ μΆλ‘ ν κ²½μ°μλ μ»΄νμΌλ¬ μ΅μ νκ° κ·Έ λμμ μ κ±°νμ§ μλλ‘ λ³΄μ₯νλ€λ κ²μ΄λ€.
μμ.
glibc 2.25μμ explicit_bzero()
κ° μ²μ λ±μ₯νλ€.
μ΄ μ μμ μ¬μ©νλ μ©μ΄λ€μ λν μ€λͺ μ attributes(7)λ₯Ό 보λΌ.
μΈν°νμ΄μ€ | μμ± | κ° |
---|---|---|
bzero() ,explicit_bzero()
|
μ€λ λ μμ μ± | MT-Safe |
bzero()
ν¨μλ μ κ±° μμ μ΄λ€. (POSIX.1-2001μμ LEGACYλ‘ νμλ¨.) μ νλ‘κ·Έλ¨μμλ memset(3)
μ μ¬μ©νλΌ. POSIX.1-2008μμ bzero()
λͺ
μΈλ₯Ό μ κ±°νμλ€. 4.3BSDμμ bzero()
ν¨μκ° μ²μ λ±μ₯νλ€.
explicit_bzero()
ν¨μλ BSD κ³μ΄ μΌλΆμλ μλ λΉνμ€ νμ₯μ΄λ€. λͺλͺ λ€λ₯Έ ꡬνμλ memset_explicit()
μ΄λ memset_s()
κ°μ λΉμ·ν ν¨μκ° μλ€.
explicit_bzero()
ν¨μλ 보μμ μ κ²½μ°λ μμ©μμ bzero()
μ¬μ© μ λ§λ₯λ¨λ¦΄ μ μλ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν κ²μ΄λ€. 0μΌλ‘ μ±μ΄ μμΉλ₯Ό μ¬λ°λ₯Έ νλ‘κ·Έλ¨μμ μ λ λ€μ 건λλ¦¬μ§ μλλ€κ³ μ»΄νμΌλ¬μμ μΆλ‘ νλ©΄ bzero()
νΈμΆμ μμ μμ¨ μλ μλ€. κ·Έλ°λ° κ·Έ bzero()
νΈμΆμ μλκ° λ―Όκ°ν λ°μ΄ν°(κ°λ Ή μνΈ)λ₯Ό μ§μμ μλͺ» λμνκ±°λ νμ·¨λ νλ‘κ·Έλ¨μ μν΄ λ°μ΄ν°κ° λμΆλ κ°λ₯μ±μ λ§λ κ²μ΄μλ€λ©΄ λ¬Έμ κ° λλ€. explicit_bzero()
νΈμΆμ μ λ μ»΄νμΌλ¬ μ΅μ νλ‘ μ κ±°λμ§ μλλ€.
explicit_bzero()
ν¨μκ° λ―Όκ°ν λ°μ΄ν° μ§μ°κΈ°μ κ΄λ ¨λ λͺ¨λ λ¬Έμ λ₯Ό ν΄κ²°ν΄ μ£Όμ§λ μλλ€.
-
explicit_bzero()
ν¨μλ λ―Όκ°ν λ°μ΄ν°κ° λ©λͺ¨λ¦¬μμ μμ ν μ§μμ‘μμ 보μ₯νμ§ μλλ€. (bzero()
λ λ§μ°¬κ°μ§λ€.) μλ₯Ό λ€μ΄ λ μ§μ€ν°λ "μμ μ©" μ€ν μμμ λ―Όκ°ν λ°μ΄ν°μ μ¬λ³Έμ΄ μμ μ μλ€.explicit_bzero()
ν¨μμμλ κ·Έλ° μ¬λ³Έλ€μ λν΄ μμ§ λͺ»νλ―λ‘ μ§μΈ μκ° μλ€. -
μ΄λ€ μν©μμλ
explicit_bzero()
κ° λ³΄μμ±μ λ¨μ΄λ¨λ¦΄ μ μλ€. (λ°μ΄ν°κ° μΆ©λΆν μμΌλ©°explicit_bzero()
νΈμΆ λ§κ³ λ λ³μ μ£Όμλ₯Ό λ°λ λμμ΄ μμ΄μ) λ―Όκ°ν λ°μ΄ν°λ₯Ό λ΄μ λ³μλ₯Ό λ μ§μ€ν°μ μ μ₯νκ² μ΅μ νν μ μλ€κ³ μ»΄νμΌλ¬κ° νλ¨ν κ²½μ°μλexplicit_bzero()
νΈμΆ μ λ μ§μ€ν°μμ RAMμ μ΄λ€ μμΉλ‘ λ°μ΄ν°λ₯Ό 볡μ¬νκ³ μ κ·Έκ±Έ μ¦μ μ§μ°κ² λλ€. (λ μ§μ€ν°μ μ¬λ³Έμ μν₯μ λ°μ§ μλλ€.) μ¬κΈ°μ λ¬Έμ λ RAMμ λ°μ΄ν°κ° λ μ§μ€ν°μ λ°μ΄ν°λ³΄λ€ λ²κ·Έμ λ ΈμΆλ κ°λ₯μ±μ΄ λκ³ , κ·Έλμexplicit_bzero()
νΈμΆμ΄ λ§λλ μμ μκ° νμ λμμ λ―Όκ°ν λ°μ΄ν°κ° λ°μ΄ν° μ§μ°κΈ° μλλ₯Ό νμ§ μμμ κ²½μ°λ³΄λ€ μ·¨μ½ν΄μ§λ€λ μ μ΄λ€.
μ°Έκ³ λ‘ λ―Όκ°ν λ³μλ₯Ό volatile
νμ μλ‘ μ μΈν΄λ μ λ¬Έμ κ° μ κ±°λμ§ μλλ€. μ¬μ€μ λ μ
νλλλ°, μλ₯Ό λ€μ΄ λ μ§μ€ν°μ μ μ₯νκ² μ΅μ νν μλ μμμ λ³μλ₯Ό μ 체 μλͺ
λμ (λ μ·¨μ½ν) RAMμ μ μ§νλλ‘ λ§λ€ μ μκΈ° λλ¬Έμ΄λ€.
μμ μΈλΆ λ΄μ©λ€μλ λΆκ΅¬νκ³ λ³΄μμ μ κ²½μ°λ μμ©μμλ μΌλ°μ μΌλ‘ explicit_bzero()
λ₯Ό μ°λ κ² μ μ°λ κ²λ³΄λ€ λ«λ€. explicit_bzero()
μ κ°λ°μλ€μ λ―Έλμ μ»΄νμΌλ¬κ° explicit_bzero()
νΈμΆμ μΈμν΄μ λ μ§μ€ν°μ "μμ
μ©" μ€ν μμμ μ¬λ³Έμ ν¬ν¨ν΄ λ―Όκ°ν λ°μ΄ν°μ λͺ¨λ μ¬λ³Έλ€μ΄ μ§μμ§λλ‘ μ‘°μΉλ₯Ό μ·¨ν κ²μΌλ‘ κΈ°λνλ€.
bstring(3), memset(3)
, swab(3)
2019-03-06