แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ›แƒ แƒฐแƒแƒ˜แƒ–แƒ”แƒœแƒ‘แƒแƒ’แƒ›แƒ แƒœแƒ˜แƒแƒœแƒ’แƒก แƒฉแƒแƒฃแƒแƒ แƒ

แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ›แƒ แƒฐแƒแƒ˜แƒ–แƒ”แƒœแƒ‘แƒแƒ’แƒ›แƒ แƒœแƒ˜แƒแƒœแƒ’แƒก แƒฉแƒแƒฃแƒแƒ แƒ

$> set -o pipefail

$> fortune | head -1 > /dev/null && echo "ะŸะพะฒะตะทะปะพ!" || echo "ะ’ั‹ ะฟั€ะพะธะณั€ะฐะปะธ"
ะŸะพะฒะตะทะปะพ!

$> fortune | head -1 > /dev/null && echo "ะŸะพะฒะตะทะปะพ!" || echo "ะ’ั‹ ะฟั€ะพะธะณั€ะฐะปะธ"
ะ’ั‹ ะฟั€ะพะธะณั€ะฐะปะธ

แƒแƒฅ fortune แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” exit(rand()).

แฒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒ›แƒ˜แƒฎแƒกแƒœแƒ? แƒ แƒ แƒแƒ แƒ˜แƒก แƒแƒฅ แƒชแƒฃแƒ“แƒ˜?

แƒšแƒ˜แƒ แƒ˜แƒ™แƒฃแƒš-แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒฎแƒ•แƒ”แƒ•แƒ

แƒ›แƒ” แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ’แƒแƒ•แƒ”แƒชแƒแƒœแƒ˜ แƒแƒ› แƒฐแƒแƒ˜แƒ–แƒ”แƒœแƒ‘แƒฃแƒ’แƒก แƒ›แƒ”แƒแƒ—แƒฎแƒ”แƒ“แƒ˜ แƒกแƒแƒฃแƒ™แƒฃแƒœแƒ˜แƒก แƒฌแƒ˜แƒœ. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ FaxNET-แƒจแƒ˜ แƒ™แƒแƒ แƒ˜แƒ‘แƒญแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ’แƒแƒฎแƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒ›แƒ˜แƒšแƒ”แƒ‘แƒ˜ "แƒ—แƒแƒ›แƒแƒจแƒ˜แƒก แƒฅแƒ•แƒ”แƒ‘แƒ˜" FreeBSD-แƒจแƒ˜. แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜ แƒ˜แƒงแƒ, แƒ—แƒแƒ•แƒก แƒ›แƒแƒฌแƒ˜แƒœแƒแƒ•แƒ” แƒ“แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒš แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒแƒ“ แƒ•แƒ—แƒ•แƒšแƒ˜แƒ“แƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ’แƒแƒœแƒ–แƒ แƒแƒฎแƒฃแƒšแƒ˜ แƒ›แƒฅแƒแƒœแƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒ›แƒ”แƒ™แƒ”แƒ—แƒ”แƒ‘แƒ˜แƒœแƒ แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“ แƒ“แƒ แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“, แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ›แƒ”แƒฅแƒชแƒ˜แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒ–แƒ”...

Sendmail-แƒจแƒ˜ แƒ“แƒ uucp/uupc-แƒจแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ—แƒแƒœ แƒ’แƒแƒ›แƒ™แƒšแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒฉแƒ”แƒ›แƒ›แƒ แƒฌแƒ˜แƒœแƒ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒแƒ› แƒ“แƒแƒแƒ›แƒแƒขแƒ แƒฉแƒ”แƒ›แƒก แƒ›แƒแƒœแƒ“แƒแƒ›แƒ”แƒ‘แƒแƒก โ€žแƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒšแƒ˜แƒแƒœแƒ˜ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกโ€œ แƒกแƒแƒฅแƒ›แƒ”แƒจแƒ˜. แƒแƒ–แƒ แƒ˜ แƒแƒ  แƒแƒฅแƒ•แƒก แƒแƒ› แƒแƒ›แƒ‘แƒ˜แƒก แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒจแƒ˜ แƒฉแƒแƒซแƒ˜แƒ แƒ•แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ› แƒฐแƒแƒ˜แƒ–แƒ”แƒœแƒ‘แƒแƒ’แƒก แƒแƒ แƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ 10-14 แƒกแƒแƒแƒ—แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ•แƒ”แƒ‘แƒ แƒซแƒแƒ“แƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒแƒฎแƒกแƒ”แƒœแƒ“แƒ แƒ“แƒ แƒ’แƒฃแƒจแƒ˜แƒœ แƒ”แƒก แƒซแƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒชแƒœแƒแƒ‘แƒ˜ แƒ˜แƒกแƒ”แƒ• แƒกแƒขแƒฃแƒ›แƒ แƒแƒ“ แƒ’แƒแƒฉแƒ”แƒ แƒ“แƒ.

TL;DR แƒžแƒแƒกแƒฃแƒฎแƒ˜

แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ head แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒแƒฎแƒฃแƒ แƒ”แƒ— แƒแƒ แƒฎแƒ˜ แƒ“แƒแƒœ fortune แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒก แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒก. แƒ—แƒฃ fortune แƒ’แƒแƒ›แƒแƒกแƒชแƒ”แƒ›แƒก แƒ”แƒ แƒ—แƒ–แƒ” แƒ›แƒ”แƒข แƒฎแƒแƒ–แƒก, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒ–แƒแƒ แƒก write() แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก แƒแƒœ แƒจแƒ”แƒแƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒšแƒ–แƒ” แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜ แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก. แƒ—แƒแƒ•แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒ— fortune แƒแƒฅแƒ•แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ แƒแƒกแƒแƒฎแƒแƒก แƒ”แƒก แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ แƒ—แƒแƒ•แƒ˜แƒก แƒ’แƒแƒกแƒ•แƒšแƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒจแƒ˜. แƒ›แƒ”แƒ แƒ” แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒ set -o pipefail แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก || echo "ะ’ั‹ ะฟั€ะพะธะณั€ะฐะปะธ".

แƒ—แƒฃแƒ›แƒชแƒ, head แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ•แƒ”แƒ  แƒ›แƒ˜แƒแƒฆแƒฌแƒ˜แƒแƒก แƒแƒ“แƒ แƒ” แƒ“แƒแƒฎแƒฃแƒ แƒ”แƒ— fortune แƒ“แƒแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒขแƒแƒœแƒแƒก. แƒ›แƒ”แƒ แƒ” แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก && echo "ะŸะพะฒะตะทะปะพ!".

แƒฉแƒ”แƒ›แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ— แƒ“แƒฆแƒ”แƒก GNUMakefile แƒแƒ แƒ˜แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒ˜:

echo '#define MDBX_BUILD_COMPILER "$(shell set -o pipefail; $(CC) --version | head -1 || echo 'Please use GCC or CLANG compatible compiler')"'

แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒฃแƒ แƒแƒ“ แƒ˜แƒ—แƒแƒ แƒ’แƒ›แƒœแƒ

แƒแƒฅ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ GNU แƒฉแƒแƒ“แƒ”แƒ‘แƒ ะธ Bash แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜ แƒ’แƒ–แƒ˜แƒ— แƒแƒคแƒชแƒ˜แƒแƒœแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— --version แƒ˜แƒก แƒ”แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ แƒ•แƒ˜แƒœ แƒแƒ แƒ˜แƒก แƒ˜แƒก แƒ“แƒ แƒ—แƒฃ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜, แƒฉแƒแƒกแƒ›แƒฃแƒšแƒ˜แƒ แƒกแƒขแƒฃแƒ‘แƒ˜ "แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— GCC แƒแƒœ CLANG แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒ˜ แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜".

แƒ›แƒแƒกแƒฌแƒแƒœแƒก แƒฅแƒ•แƒแƒ‘แƒ˜แƒก แƒคแƒ˜แƒ แƒคแƒ˜แƒขแƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒกแƒแƒ“แƒ›แƒ”. แƒ˜แƒก แƒแƒ› แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒœแƒ˜แƒก แƒฌแƒ˜แƒœ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ’แƒแƒœ แƒ›แƒจแƒ•แƒ”แƒœแƒ˜แƒ•แƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ (Linux, Solaris, OSX, FreeBSD, WSL แƒ“แƒ แƒ.แƒจ.). แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒฃแƒจแƒ˜แƒœ แƒแƒšแƒขแƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒแƒ–แƒ” Elbrus 2000 (E2K) แฒจแƒ”แƒ•แƒแƒ›แƒฉแƒœแƒ˜แƒ”:

#define MDBX_BUILD_COMPILER "lcc:1.23.20:Sep--4-2019:e2k-v3-linux Please use GCC or CLANG compatible compiler"

แƒ’แƒฃแƒšแƒฌแƒ แƒคแƒ”แƒšแƒแƒ“ แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒแƒ  แƒ•แƒ˜แƒชแƒแƒœแƒ˜ แƒฉแƒ”แƒ›แƒ˜ แƒซแƒ•แƒ”แƒšแƒ˜ "แƒœแƒแƒชแƒœแƒแƒ‘แƒ˜". แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒ‘แƒ”แƒ•แƒ แƒฏแƒ”แƒ  แƒ˜แƒฅแƒœแƒ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ˜ แƒ”แƒšแƒ‘แƒ แƒฃแƒกแƒ–แƒ” แƒ“แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก Alt. แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ”แƒ‘แƒ˜แƒ—, GNU Make แƒ“แƒ bash-แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒ—. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒแƒ  แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒแƒฅ แƒฉแƒ”แƒ›แƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ“แƒแƒœแƒแƒฎแƒ•แƒ.

แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ˜แƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ แƒ”แƒžแƒ แƒแƒ“แƒฃแƒชแƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒ“แƒ/แƒแƒœ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒแƒก, แƒ—แƒฃ แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒแƒ“แƒ, แƒฃแƒคแƒ แƒ แƒฃแƒชแƒœแƒแƒฃแƒ แƒ˜ แƒ แƒแƒ› แƒ“แƒแƒ˜แƒฌแƒงแƒ.
แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒก แƒจแƒ”แƒšแƒแƒชแƒ•แƒ:

echo "#define MDBX_BUILD_COMPILER '$(set -o pipefail; LC_ALL=C cc --version | head -1 || echo "Please use GCC or CLANG compatible compiler")'"

แƒ“แƒ แƒแƒ“แƒแƒ“แƒ แƒ แƒ˜แƒก แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ“แƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒขแƒ”แƒฅแƒกแƒขแƒก, แƒ›แƒ”แƒ แƒ” แƒแƒ แƒ... แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ“แƒ˜แƒ“แƒฎแƒแƒœแƒก แƒฉแƒ”แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒฎแƒแƒœแƒก แƒแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒ“แƒ˜แƒ—, แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒ•แƒ”แƒก แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ—!

แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, strace แƒฉแƒ•แƒ”แƒœแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜! แƒ“แƒ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒšแƒ˜ แƒกแƒขแƒ แƒ”แƒ˜แƒก แƒขแƒ˜แƒ แƒแƒ“แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ  แƒ›แƒฅแƒแƒœแƒ“แƒ แƒ“แƒ แƒ, แƒ แƒแƒ› แƒ“แƒแƒ•แƒแƒญแƒ˜แƒ แƒ Enter, แƒ’แƒแƒ•แƒ˜แƒชแƒแƒœแƒ˜ แƒฉแƒ”แƒ›แƒ˜ แƒซแƒ•แƒ”แƒšแƒ˜ แƒ›แƒ”แƒ’แƒแƒ‘แƒแƒ แƒ˜ แƒ‘แƒแƒขแƒแƒœแƒ˜ แƒฐแƒ”แƒ˜แƒ–แƒ”แƒœแƒ‘แƒแƒ’แƒ˜ แƒ“แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜. แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜ แƒ›แƒ” แƒ—แƒ•แƒ˜แƒ—แƒแƒœ 25 แƒฌแƒšแƒ˜แƒก แƒฌแƒ˜แƒœ, แฒœแƒแƒกแƒขแƒแƒšแƒ’แƒ˜แƒโ€ฆ แƒ›แƒ” แƒ™แƒ˜ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒ›แƒแƒฌแƒงแƒ”แƒœแƒ˜แƒšแƒ˜ แƒ•แƒงแƒแƒคแƒ˜แƒšแƒ˜แƒงแƒแƒ•แƒ˜ แƒ“แƒ แƒ“แƒแƒ›แƒ”แƒฌแƒ”แƒ แƒ แƒ”แƒก แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ ๐Ÿ˜‰

แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ—แƒแƒ•แƒ›แƒแƒงแƒ•แƒแƒ แƒ”แƒแƒ‘แƒ แƒฐแƒแƒ˜แƒ–แƒ”แƒœแƒ‘แƒแƒ’แƒ˜, แƒฅแƒ•แƒ”แƒจ strace แƒฃแƒ แƒฉแƒ”แƒ•แƒœแƒ˜แƒ แƒแƒ  แƒ’แƒแƒ›แƒ แƒแƒ•แƒšแƒ“แƒ”แƒก.

แฒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ?

  • แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ head แƒแƒฅแƒ•แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ (แƒฃแƒคแƒ แƒ แƒกแƒฌแƒแƒ แƒแƒ“, แƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒช แƒ™แƒ˜) แƒ“แƒแƒฎแƒฃแƒ แƒแƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒ˜ แƒแƒ แƒฎแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒ˜ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒš แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒก.
  • แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒ”แƒœแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ-แƒฉแƒแƒ›แƒฌแƒ”แƒ แƒ˜ (แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ cc) แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒก แƒ“แƒแƒ‘แƒ”แƒญแƒ“แƒ•แƒ แƒ“แƒ แƒฃแƒคแƒแƒกแƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— write().
  • แƒ—แƒฃ แƒ›แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒšแƒก แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ, แƒ แƒแƒ› แƒ“แƒแƒฎแƒฃแƒ แƒแƒก แƒแƒ แƒฎแƒ˜ แƒ—แƒแƒ•แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, แƒ›แƒฌแƒ”แƒ แƒšแƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ“แƒแƒœ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ›แƒ“แƒ”, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒฌแƒ”แƒ แƒแƒšแƒ˜ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก.
  • แƒ›แƒฌแƒ”แƒ แƒšแƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒฃแƒคแƒšแƒ”แƒ‘แƒแƒ›แƒแƒกแƒ˜แƒšแƒ˜ แƒแƒ แƒ˜แƒ•แƒ” แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒคแƒก แƒแƒ แƒฎแƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก แƒ“แƒ แƒแƒกแƒแƒฎแƒแƒ•แƒก แƒ›แƒแƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜.
  • แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒ set -o pipefail แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒ แƒแƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ (แƒ›แƒชแƒ“แƒแƒ แƒ˜) แƒ—แƒฃ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› แƒ”แƒ แƒ—แƒ˜ แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒก แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก || echo "Please use GCC or CLANG compatible compiler".

แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ“แƒ”แƒก แƒ•แƒแƒ แƒ˜แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ˜แƒ›แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒแƒ›แƒฌแƒ”แƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒกแƒ˜แƒ’แƒœแƒแƒšแƒ”แƒ‘แƒ—แƒแƒœ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒฌแƒงแƒ“แƒ”แƒก แƒแƒ แƒแƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ (แƒแƒ แƒแƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜/แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—), แƒแƒœ write() แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒšแƒ–แƒ” แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒก แƒ“แƒ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ errno = EPIPE.

แƒ•แƒ˜แƒœ แƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒœแƒแƒจแƒแƒ•แƒ”?

แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒš แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒชแƒแƒขแƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜. แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ cc (lcc:1.23.20:Sepโ€”4-2019:e2k-v3-linux) แƒแƒ  แƒแƒ แƒ˜แƒก แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒ˜. แƒฎแƒจแƒ˜แƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒกแƒฏแƒแƒ‘แƒก แƒกแƒ˜แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒ˜แƒ— แƒจแƒ”แƒชแƒ“แƒ”แƒ—, แƒ—แƒฃแƒ›แƒชแƒ แƒ”แƒก แƒแƒ•แƒšแƒ”แƒœแƒก แƒฃแƒ”แƒชแƒแƒ  แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒ”แƒ‘แƒก แƒขแƒ แƒแƒ“แƒ˜แƒชแƒ˜แƒฃแƒšแƒ˜ แƒฅแƒชแƒ”แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒšแƒ˜ แƒฅแƒ•แƒแƒ‘แƒ˜แƒก แƒคแƒ˜แƒ แƒคแƒ˜แƒขแƒแƒจแƒ˜.

แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ—?

แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜:

fortune | head -1 && echo "ะŸะพะฒะตะทะปะพ, ะฝะพ ะฒั‹ ั€ะธัะบัƒะตั‚ะต!" || echo "WTF?"

แƒกแƒฌแƒแƒ แƒแƒ“:

  1. (fortune && echo "ะฃัะฟะตัˆะฝะพ" || echo "ะžัˆะธะฑะบะฐ") | head -1

    แƒแƒฅ, แƒ›แƒ˜แƒšแƒ˜แƒก แƒแƒ“แƒ แƒ”แƒฃแƒš แƒ“แƒแƒฎแƒฃแƒ แƒ•แƒแƒก แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ แƒฏแƒ˜แƒ›แƒแƒœแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ”แƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ แƒฌแƒงแƒแƒ‘แƒ˜แƒš แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒก ("แƒคแƒ แƒฉแƒฎแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜"). แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ—แƒฃ fortune แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก แƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ˜แƒ— แƒจแƒ”แƒแƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒก แƒ“แƒแƒฎแƒฃแƒ แƒฃแƒš แƒแƒ แƒฎแƒก, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒก || echo "ะžัˆะธะฑะบะฐ" แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒแƒ“ แƒฌแƒแƒ•แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ แƒฎแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒ™แƒ”แƒขแƒ˜แƒšแƒ˜แƒ.

  2. fortune | cat - | head -1 && echo "ะฃัะฟะตัˆะฝะพ" || echo "ะžัˆะธะฑะบะฐ"

    แƒแƒฅ แƒแƒ แƒ˜แƒก แƒฃแƒขแƒ˜แƒšแƒ˜แƒขแƒ cat แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก แƒ แƒแƒ’แƒแƒ แƒช แƒ“แƒแƒ›แƒจแƒšแƒ”แƒšแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒคแƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก EPIPE แƒ’แƒแƒงแƒ•แƒแƒœแƒ˜แƒกแƒ—แƒแƒœแƒแƒ•แƒ”. แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ fortune แƒ›แƒชแƒ˜แƒ แƒ” (แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฎแƒแƒ–แƒ˜) โ€‹โ€‹แƒ“แƒ แƒฏแƒ“แƒ”แƒ‘แƒ แƒแƒ แƒฎแƒ˜แƒก แƒ‘แƒฃแƒคแƒ”แƒ แƒจแƒ˜ (512 แƒ‘แƒแƒ˜แƒขแƒ˜แƒ“แƒแƒœ โ‰ˆ64K-แƒ›แƒ“แƒ”, แƒฃแƒ›แƒ”แƒขแƒ”แƒก OS-แƒจแƒ˜ โ‰ฅ4K). แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒก.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ›แƒฃแƒจแƒแƒ•แƒแƒ— แƒกแƒฌแƒแƒ แƒแƒ“ EPIPE แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜?

แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ”แƒ แƒ—แƒ˜ แƒกแƒฌแƒแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜:

  • EPIPE แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ“แƒ”แƒก (แƒ“แƒ แƒแƒ˜แƒกแƒแƒฎแƒ”แƒ‘แƒ แƒ’แƒแƒกแƒ•แƒšแƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒจแƒ˜) แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒ›แƒแƒขแƒแƒœแƒ˜แƒกแƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ‘แƒแƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒก แƒแƒœ แƒกแƒแƒ แƒ”แƒ–แƒ”แƒ แƒ•แƒ แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก.
  • EPIPE แƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ˜แƒ แƒ˜แƒ’แƒœแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒ“แƒแƒ›แƒฎแƒ›แƒแƒ แƒ” แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก --help แƒแƒœ --version.
  • แƒ—แƒฃ แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒจแƒ˜ แƒแƒ“แƒ แƒ” | head, แƒ›แƒแƒจแƒ˜แƒœ EPIPE แƒกแƒฏแƒแƒ‘แƒก แƒ˜แƒ’แƒœแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒ, แƒ—แƒแƒ แƒ”แƒ› แƒฏแƒแƒ‘แƒ˜แƒ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒกแƒ•แƒšแƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒจแƒ˜ แƒแƒกแƒแƒฎแƒ•แƒ.

แƒ›แƒ˜แƒœแƒ“แƒ แƒ•แƒ˜แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒ“แƒ แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ แƒ’แƒแƒ“แƒแƒ•แƒฃแƒฎแƒแƒ“แƒ แƒ’แƒฃแƒœแƒ“แƒ”แƒ‘แƒก MCST ะธ แƒแƒšแƒขแƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒกแƒแƒแƒชแƒแƒ แƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒœแƒ“แƒแƒ›แƒ”แƒ‘แƒ!
แƒแƒกแƒ” แƒ’แƒแƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ— แƒ™แƒแƒ›แƒแƒ แƒแƒ“แƒ”แƒ‘แƒ˜, แƒแƒกแƒ” แƒจแƒ”แƒฎแƒ•แƒ”แƒ“แƒ แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ›แƒแƒ“แƒ’แƒแƒ›แƒแƒ–แƒ”!

แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ แƒ‘แƒ”แƒ แƒ”แƒ–แƒ˜ แƒ‘แƒ”แƒญแƒ“แƒ•แƒ˜แƒ—แƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒšแƒแƒ“.
KDPV-แƒ“แƒแƒœ แƒ’แƒ˜แƒแƒ แƒ’แƒ˜ แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ