์ด๊ฒ์ Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ์ ๊ณต์ ์ฒด์์ ์คํํ ์ ์๋ basenameposix ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
basename โ ๊ฒฝ๋ก๋ช ์ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ๋ถ๋ถ์ ๋ฐํํฉ๋๋ค.
๊ฐ์
๊ธฐ๋ณธ ์ด๋ฆ ํ [์ ๋ฏธ์ฌ]
๊ธฐ์
XNUMXD๋ดํ์ ํ ํผ์ฐ์ฐ์๋ ๊ธฐ๋ณธ ์ ์์ ์ ์๋ ๋๋ก ๊ฒฝ๋ก ์ด๋ฆ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
POSIX.1-2008์ ๋ณผ๋ฅจ, ์น์ 3.267, ๊ฒฝ๋ก๋ช . ๋ฌธ์์ด ํ ๋ก ๋ณํ๋ฉ๋๋ค
์ ๋ง์ง๋ง ๊ฒฝ๋ก ์ด๋ฆ ๊ตฌ์ฑ ์์์ ํด๋นํ๋ ํ์ผ ์ด๋ฆ ํ ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ค์ ์ ๋ฏธ์ฌ
ํ ์ ๋ฏธ์ฌ, ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ ๊ฑฐ๋์ด์ผ ํฉ๋๋ค. ์ด๋ ์์ ์ ์ํํ์ฌ ์ํ๋ฉ๋๋ค.
๋ค์ ๋จ๊ณ๋ฅผ ์์๋๋ก ์ํํ๋ฉด ๋ฉ๋๋ค.
1. ๋ง์ฝ ํ null ๋ฌธ์์ด์ธ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ ๋ฌธ์์ด์ด ๋ค์๊ณผ ๊ฐ์์ง ์ฌ๋ถ๋ ์ง์ ๋์ง ์์ต๋๋ค. '.' or
๋ ๋ฌธ์์ด. ๋ ๊ฒฝ์ฐ ๋ชจ๋ 2~6๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค.
2. ๋ง์ฝ ํ is "//", 3~6๋จ๊ณ๋ฅผ ๊ฑด๋๋ธ์ง ๋๋ ๊ฑด๋๋ธ์ง ์ฌ๋ถ๋ ๊ตฌํ์ ๋ฐ๋ผ ์ ์๋ฉ๋๋ค.
์ฒ๋ฆฌ๋จ.
3. ๋ง์ฝ ํ ์ ์ฒด๋ก ๊ตฌ์ฑ ์บ๋ฆญํฐ, ํ ๋จ์ผ๋ก ์ค์ ๋ฉ๋๋ค
์บ๋ฆญํฐ. ์ด ๊ฒฝ์ฐ 4~6๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค.
4. ํํ์ด ์๋ ๊ฒฝ์ฐ ์ ๋ฌธ์ ํ, ๊ทธ๋ค์ ์ ๊ฑฐ๋ฉ๋๋ค.
5. ํด๋น์ฌํญ์ด ์๋ ๊ฒฝ์ฐ ๋จ์ ๋ฌธ์ ํ, ์ ๋์ฌ ํ ~๊น์ง
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ ํฌํจํด์ ๋ฑ์ฅ์ธ๋ฌผ ํ ์ ๊ฑฐ๋ฉ๋๋ค.
6. ๊ฒฝ์ฐ ์ ๋ฏธ์ฌ ํผ์ฐ์ฐ์๊ฐ ์กด์ฌํ์ง๋ง, ๋ค์์ ๋จ์ ์๋ ๋ฌธ์์ ๋์ผํ์ง ์์ต๋๋ค.
ํ, ์ ๋จ์ ์๋ ๋ฌธ์์ ์ ๋ฏธ์ฌ์ ๋์ผํฉ๋๋ค. ํ, ์ ๋ฏธ์ฌ
์ ๋ฏธ์ฌ ์์ ์ ๊ฑฐ๋ฉ๋๋ค ํ. ๊ทธ๋ ์ง ์์ผ๋ฉด, ํ ์ด ๋จ๊ณ์์๋ ์์ ๋์ง ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์ค๋ฅ๋ก ๊ฐ์ฃผ๋์ง ์์ต๋๋ค. ์ ๋ฏธ์ฌ ์์ ์ฐพ์ ์ ์์ต๋๋ค ํ.
๊ฒฐ๊ณผ ๋ฌธ์์ด์ ํ์ค ์ถ๋ ฅ์ ๊ธฐ๋ก๋ฉ๋๋ค.
์ต์
์์.
ํผ์ฐ์ฐ์
๋ค์ ํผ์ฐ์ฐ์๊ฐ ์ง์๋ฉ๋๋ค.
ํ ๋ฌธ์์ด์ ๋๋ค.
์ ๋ฏธ์ฌ ๋ฌธ์์ด์ ๋๋ค.
STDIN
์ฌ์ฉํ์ง ์์ต๋๋ค.
์ ๋ ฅ ํ์ผ
์์.
ํ๊ฒฝ ๋ณ์
๋ค์ ํ๊ฒฝ ๋ณ์๋ ์คํ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๊ธฐ๋ณธ ์ด๋ฆ:
๋ ์ค์ ๋์ง ์์ ๊ตญ์ ํ ๋ณ์์ ๋ํ ๊ธฐ๋ณธ๊ฐ์ ์ ๊ณตํ๊ฑฐ๋
์๋. (POSIX.1-2008์ ๊ธฐ๋ณธ ์ ์ ๋ณผ๋ฅจ์ ์ฐธ์กฐํ์ญ์์ค. ์น์ 8.2,
๊ตญ์ ํ ๋ณ์ ๊ตญ์ ํ๋ฅผ ์ํด
๋ก์ผ์ผ ๋ฒ์ฃผ์ ๊ฐ์ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ณ์)
LC_ALL ๋น์ด ์์ง ์์ ๋ฌธ์์ด ๊ฐ์ผ๋ก ์ค์ ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ชจ๋ ๊ฐ์ ์ฌ์ ์ํฉ๋๋ค.
๊ตญ์ ํ ๋ณ์.
LC_CTYPE ํ ์คํธ ๋ฐ์ดํฐ์ ๋ฐ์ดํธ ์ํ์ค ํด์์ ์ํ ๋ก์ผ์ผ ๊ฒฐ์
๋ฌธ์๋ก(์: ๋ค์ค ๋ฐ์ดํธ ๋ฌธ์๊ฐ ์๋ ๋จ์ผ ๋ฐ์ดํธ
์ธ์).
LC_๋ฉ์์ง
์ ํ์๊ณผ ๋ด์ฉ์ ์ํฅ์ ์ฃผ๋ ๋ฐ ์ฌ์ฉํด์ผ ํ๋ ๋ก์ผ์ผ์ ๊ฒฐ์ ํฉ๋๋ค.
ํ์ค ์ค๋ฅ์ ๊ธฐ๋ก๋ ์ง๋จ ๋ฉ์์ง.
NLS๊ฒฝ๋ก ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ฉ์์ง ์นดํ๋ก๊ทธ์ ์์น๋ฅผ โโ๊ฒฐ์ ํฉ๋๋ค. LC_๋ฉ์์ง.
๋น๋๊ธฐ ์ด๋ฒคํธ
๊ธฐ๋ณธ.
ํ์ค ์ถ๋ ฅ
XNUMXD๋ดํ์ ๊ธฐ๋ณธ ์ด๋ฆ ์ ํธ๋ฆฌํฐ๋ ๋ค์ ํ์์ผ๋ก ํ์ค ์ถ๋ ฅ์ ํ์ ์์ฑํฉ๋๋ค.
"%s\n", <๊ฒฐ๊ณผ ํ>
STDERR
ํ์ค ์ค๋ฅ๋ ์ง๋จ ๋ฉ์์ง์๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ถ๋ ฅ ํ์ผ
์์.
ํ์ฅ ๊ธฐ์
์์.
EXIT ์ง์
๋ค์ ์ข ๋ฃ ๊ฐ์ด ๋ฐํ๋ฉ๋๋ค.
0 ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์์ต๋๋ค.
>0 ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๊ฒฐ๊ณผ OF ์ค๋ฅ
๊ธฐ๋ณธ.
XNUMXD๋ดํ์ ์ํ์ ์น์ are ์ ์ตํฉ๋๋ค.
์ ์ฒญ ์ฌ์ฉ๋ฒ
์ ์ ๊ฒฝ๋ก๋ช ๊ฒฝ๋ก ์ด๋ฆ์ ๋ํ ๊ตฌํ ์ ์ ๋์์ ์ง์ ํฉ๋๋ค.
๋๋ก ์์ ๋ฌธ์. ๋ฐ๋ผ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์๋ก ์ถ๊ฐํ์ง ์์ต๋๋ค.
๊ฒฝ๋ก ์ด๋ฆ์ ์์ ๋ถ๋ถ์ ๋ฌธ์๊ฐ ์๋์ง ํ์ธํ์ง ์๋ ํ
๋๋ณด๋ค ๋ง๊ฑฐ๋ ์ ๊ฑฐ๋ ๊ตฌํ ์ ์๋ฅผ ์ฒ๋ฆฌํ ์ค๋น๊ฐ ๋์ด ์์ต๋๋ค.
๊ฒฐ๊ณผ.
์ฌ์ฉ ์
๋ฌธ์์ด์ ๊ฒฝ์ฐ ํ ์ ํจํ ๊ฒฝ๋ก ์ด๋ฆ์ ๋๋ค.
$(๊ธฐ๋ณธ ์ด๋ฆ -- "ํ")
๋ค์ ์ด๋ฆ์ ํ์ผ์ ์ฌ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ํ์ผ ์ด๋ฆ์ ์์ฑํฉ๋๋ค. ํ ๋๋ ํ ๋ฆฌ์์
๋ฐํํ ์ฌ๋:
$(๋๋ ํ ๋ฆฌ ์ด๋ฆ -- "ํ")
๋ฌธ์์ด์ ๊ฒฝ์ฐ ํ ์ ํจํ ๊ฒฝ๋ก ์ด๋ฆ์ด ์๋ ๊ฒฝ์ฐ ๋์ผํ ์๊ณ ๋ฆฌ์ฆ์ด ์ฌ์ฉ๋์ง๋ง ๊ฒฐ๊ณผ๋
์ ํจํ ํ์ผ ์ด๋ฆ์ผ ํ์๋ ์์ต๋๋ค. ๊ทธ๋งํผ ๊ธฐ๋ณธ ์ด๋ฆ ์ ํธ๋ฆฌํฐ๋ ์ด๋ ํ ํ๋จ๋ ๋ด๋ฆฌ์ง ์์ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
ํ๋น์ฑ์ ๋ํด ํ ๊ฒฝ๋ก๋ช ์ผ๋ก; ๋จ์ง ์ง์ ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ฅด๋ฉด์
๊ฒฐ๊ณผ ๋ฌธ์์ด์ ์์ฑํฉ๋๋ค.
๋ค์ ์ ์คํฌ๋ฆฝํธ๊ฐ ์ปดํ์ผ๋ฉ๋๋ค. /usr/src/cmd/cat.c ์ถ๋ ฅ์ ํ์ผ๋ก ์ฎ๊น๋๋ค.
์ด๋ฆ ๋ฐฉ๋ฒ ์ธ์๋ก ํธ์ถํ ๋ ํ์ฌ ๋๋ ํฐ๋ฆฌ์์ /usr/src/cmd/cat ๋๋
๋ ผ์ ๊ฑฐ๋ฆฌ /usr/src/cmd/cat.c:
c99 -- "$(์ด๋ฆ -- "$1")/$(๊ธฐ๋ณธ ์ด๋ฆ -- "$ 1" .c).c" &&
mv ์์ "$(๊ธฐ๋ณธ ์ด๋ฆ -- "$ 1" .์จ)"
์ด๋ก ์ ํด์
์ ํ๋ ๊ธฐ๋ณธ ์ด๋ฆ ๊ณผ ์ด๋ฆ ์ธ์ ๊น์ง๋ ํ ์ ํจํ๋ค
๊ฒฝ๋ก๋ช :
$(๊ธฐ๋ณธ ์ด๋ฆ -- "ํ")
๋๋ ํ ๋ฆฌ์ ์๋ ํ์ผ์ ์ ํจํ ํ์ผ ์ด๋ฆ:
$(๋๋ ํ ๋ฆฌ ์ด๋ฆ -- "ํ")
์ด๋ ์ด๋ฌํ ์ ํธ๋ฆฌํฐ์ ์ด๊ธฐ ์ ์ ๋ฒ์ ์์๋ ์๋ํ์ง ์์ต๋๋ค.
ํํ์ ์ง์ ๋ ์ฒ๋ฆฌ ๋ฌธ์.
์ ์ ์ ์ดํ ๊ฒฝ๋ก๋ช ๊ฒฝ๋ก ์ด๋ฆ์ ๋ํ ๊ตฌํ ์ ์ ๋์์ ์ง์ ํฉ๋๋ค.
๋ ๊ฐ๋ก ์์ํด์ ๋ฌธ์์ ๋ํด POSIX.1โ2008์ ์ด ๋ณผ๋ฅจ์์๋ ์ ์ฌํ ๋ฌธ์๋ฅผ ์ง์ ํฉ๋๋ค.
๊ตฌํ์ ์ ์๋ ๋์ ๊ธฐ๋ณธ ์ด๋ฆ ๊ณผ ์ด๋ฆ ์ ์ฉ.
๋ฏธ๋ ์ค์๋ ๊ธธ
์์.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์ผ๋ก basenameposix ์ฌ์ฉ