putenv(3) - wariua/manpages-ko GitHub Wiki

NAME

putenv - ν™˜κ²½ λ³€μˆ˜ λ°”κΎΈκ±°λ‚˜ μΆ”κ°€ν•˜κΈ°

SYNOPSIS

#include <stdlib.h>

int putenv(char *string);

glibc κΈ°λŠ₯ 확인 맀크둜 μš”κ±΄ (feature_test_macros(7) μ°Έκ³ ):

putenv()
_XOPEN_SOURCE
|| /* glibc 2.19λΆ€ν„°: */ _DEFAULT_SOURCE
|| /* glibc 버전 <= 2.19: */ _SVID_SOURCE

DESCRIPTION

putenv() ν•¨μˆ˜λŠ” ν™˜κ²½ λ³€μˆ˜ 값을 μΆ”κ°€ν•˜κ±°λ‚˜ λ°”κΎΌλ‹€. 인자 string은 name=value ν˜•νƒœμ΄λ‹€. name이 ν™˜κ²½ 내에 μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ string을 ν™˜κ²½μ— μΆ”κ°€ν•œλ‹€. name이 이미 μ‘΄μž¬ν•˜λŠ” κ²½μš°μ—λŠ” ν™˜κ²½ μ•ˆμ˜ name의 값을 value둜 λ°”κΎΌλ‹€. string이 κ°€λ¦¬ν‚€λŠ” λ¬Έμžμ—΄μ΄ ν™˜κ²½μ˜ 일뢀가 되며, λ”°λΌμ„œ κ·Έ λ¬Έμžμ—΄μ„ λ³€κ²½ν•˜λ©΄ ν™˜κ²½μ΄ 바뀐닀.

RETURN VALUE

putenv() ν•¨μˆ˜λŠ” 성곡 μ‹œ 0을 λ°˜ν™˜ν•˜κ³  였λ₯˜ λ°œμƒ μ‹œ 0 μ•„λ‹Œ 값을 λ°˜ν™˜ν•œλ‹€. 였λ₯˜ λ°œμƒ μ‹œ 원인을 λ‚˜νƒ€λ‚΄λ„λ‘ errnoλ₯Ό μ„€μ •ν•œλ‹€.

ERRORS

ENOMEM
μƒˆ ν™˜κ²½μ„ ν• λ‹Ήν•  곡간이 μΆ©λΆ„μΉ˜ μ•ŠμŒ.

ATTRIBUTES

이 μ ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ“€μ— λŒ€ν•œ μ„€λͺ…은 attributes(7)λ₯Ό 보라.

μΈν„°νŽ˜μ΄μŠ€ 속성 κ°’
putenv() μŠ€λ ˆλ“œ μ•ˆμ „μ„± MT-Unsafe const:env

CONFORMING TO

POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

NOTES

putenv() ν•¨μˆ˜κ°€ μž¬μ§„μž… κ°€λŠ₯이 아닐 μˆ˜λ„ μžˆλ‹€. glibc 2.0μ—μ„œλŠ” μ•„λ‹ˆμ§€λ§Œ glibc 2.1 버전은 μž¬μ§„μž… κ°€λŠ₯이닀.

버전 2.1.2λΆ€ν„° glibc κ΅¬ν˜„μ΄ SUSv2λ₯Ό μ€€μˆ˜ν•œλ‹€. 즉 putenv()에 μ€€ 포인터 string을 μ‚¬μš©ν•œλ‹€. 특히 κ·Έ λ¬Έμžμ—΄μ΄ ν™˜κ²½μ˜ 일뢀가 되고, κ·Έλž˜μ„œ 이후 λ³€κ²½ν•˜λ©΄ ν™˜κ²½μ΄ λ°”λ€Œκ²Œ λœλ‹€. (λ”°λΌμ„œ μžλ™ λ³€μˆ˜λ₯Ό 인자둜 ν•΄μ„œ putenv()λ₯Ό ν˜ΈμΆœν•œ λ‹€μŒ string이 μ—¬μ „νžˆ ν™˜κ²½μ˜ 일뢀인 μƒνƒœλ‘œ 호좜 ν•¨μˆ˜μ—μ„œ λ°˜ν™˜ν•˜λŠ” 것은 였λ₯˜λ‹€.) ν•˜μ§€λ§Œ glibc 버전 2.0λΆ€ν„° 2.1.1κΉŒμ§€μ—μ„œλŠ” λ‹€λ₯΄λ‹€. 즉 λ¬Έμžμ—΄μ˜ 볡사본을 μ“΄λ‹€. μ΄λŠ” ν•œνŽΈμœΌλ‘œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό μΌμœΌν‚€κ³  λ‹€λ₯Έ ν•œνŽΈμœΌλ‘œ SUSv2λ₯Ό μœ„λ°˜ν•œλ‹€.

4.4BSD 버전은 glibc 2.0처럼 볡사본을 μ“΄λ‹€.

SUSv2μ—μ„œ μ›ν˜•μ˜ constλ₯Ό μ—†μ•΄κ³  glibc 2.1.3μ—μ„œ κ·Έλ ‡κ²Œ 됐닀.

GNU C 라이브러리 κ΅¬ν˜„μ—μ„œλŠ” λΉ„ν‘œμ€€ ν™•μž₯을 μ œκ³΅ν•œλ‹€. λ‹€μŒμ²˜λŸΌ string에 λ“±ν˜Έκ°€ 포함돼 μžˆμ§€ μ•ŠμœΌλ©΄ μ§€μ •ν•œ λ³€μˆ˜λ₯Ό 호좜자의 ν™˜κ²½μ—μ„œ μ œκ±°ν•œλ‹€.

putenv("NAME");

SEE ALSO

clearenv(3), getenv(3), setenv(3), unsetenv(3), environ(7)


2019-03-06

⚠️ **GitHub.com Fallback** ⚠️