Elixir 1.7

System




elixir

System

System मॉड्यूल वे फ़ंक्शन प्रदान करता है जो सीधे VM या होस्ट सिस्टम के साथ इंटरैक्ट करते हैं।

पहर

System मॉड्यूल उन कार्यों को भी प्रदान करता है जो समय के साथ काम करते हैं, सिस्टम द्वारा रखे गए अलग-अलग समय को विभिन्न समय इकाइयों के समर्थन के साथ वापस करते हैं।

सिस्टम के समय पर भरोसा करने में एक जटिलता यह है कि उन्हें समायोजित किया जा सकता है। उदाहरण के लिए, जब आप दिन के समय की बचत के समय को दर्ज करते हैं और छोड़ते हैं, तो सिस्टम घड़ी को समायोजित किया जाएगा, अक्सर एक घंटे को जोड़ना या निकालना। हम इस तरह के बदलावों को "टाइम वॉर" कहते हैं। यह समझने के लिए कि ऐसे परिवर्तन हानिकारक कैसे हो सकते हैं, निम्न कोड की कल्पना करें:

## DO NOT DO THIS
prev = System.os_time()
# ... execute some code ...
next = System.os_time()
diff = next - prev

यदि, कोड निष्पादित हो रहा है, तो सिस्टम क्लॉक बदल जाता है, 1 सेकंड में निष्पादित होने वाले कुछ कोड को 1 घंटे से अधिक समय लेने की सूचना दी जा सकती है! ऐसी चिंताओं को दूर करने के लिए, VM System.monotonic_time/0 माध्यम से एक मोनोटोनिक समय प्रदान करता है जो कभी घटता नहीं है और न ही उछलता है:

## DO THIS
prev = System.monotonic_time()
# ... execute some code ...
next = System.monotonic_time()
diff = next - prev

सामान्यतया, वीएम तीन समय माप प्रदान करता है:

  • os_time/0 - ओएस द्वारा रिपोर्ट किया गया समय। इस समय को बिना किसी सीमा के समय में पीछे या पीछे समायोजित किया जा सकता है;

  • system_time/0 - system_time/0 का VM दृश्य। सिस्टम समय और OS समय, समय वार के मामले में मेल नहीं खा सकते हैं, हालांकि VM उन्हें संरेखित करने की दिशा में काम करता है। यह समय मोनोटोनिक नहीं है (यानी, यह घट सकता है) क्योंकि इसका व्यवहार वीएम समय ताना मोड द्वारा कॉन्फ़िगर किया गया है ;

  • monotonic_time/0 - एर्लांग वीएम द्वारा प्रदान किया गया एक मोनोटोनिक रूप से बढ़ता समय।

इस मॉड्यूल में समय कार्य करता है :native इकाई (जब तक कि अन्यथा निर्दिष्ट न हो), जो कि ओएस पर निर्भर है। अधिकांश समय, सभी गणनाएं की जाती हैं :native इकाई, सटीक नुकसान से बचने के लिए, convert_time_unit/3 को एक विशिष्ट समय इकाई में बदलने के लिए अंत में आमंत्रित किया जाता है जैसे :millisecond या :microsecond । अधिक जानकारी के लिए time_unit/0 प्रकार देखें।

अलग-अलग समय के लिए वीएम सपोर्ट पर अधिक पूर्ण रंडाउन के लिए, एरलांग डॉक्स में समय और समय सुधार पर अध्याय देखें।

सारांश

प्रकार

time_unit/0

monotonic_time/1 और अन्य जैसे कार्यों को पारित करने के लिए समय इकाई

कार्य

argv()

कमांड लाइन तर्क सूचीबद्ध करता है

argv(args)

कमांड लाइन तर्क को संशोधित करता है

at_exit(fun)

एक प्रोग्राम एग्जिट हैंडलर फंक्शन रजिस्टर करता है

build_info()

अमृत ​​निर्माण की जानकारी

cmd (कमांड, आर्ग्स, opts \\ [])

दिए गए command को args साथ निष्पादित करता है

compiled_endianness()

उस एंडियननेस को वापस करता है जिसे सिस्टम ने संकलित किया था

convert_time_unit/3

समय इकाई से समय इकाई के लिए समय को to_unit

cwd!()

वर्तमान कार्य निर्देशिका, त्रुटि पर अपवाद

cwd()

वर्तमान काम कर निर्देशिका

delete_env(varname)

एक पर्यावरण चर को हटाता है

endianness()

अंतस लौटाता है

find_executable(program)

सिस्टम पर एक निष्पादन योग्य का पता लगाता है

get_env()

सभी सिस्टम वातावरण चर देता है

get_env(varname)

दिए गए पर्यावरण चर का मान लौटाता है

get_pid()

Erlang VM प्रक्रिया पहचानकर्ता

पड़ाव (स्थिति \\ 0)

तुरंत एर्लांग रनटाइम सिस्टम को रोक देता है

monotonic_time/0

में वर्तमान मोनोटोनिक समय देता है :native समय इकाई

monotonic_time/1

दिए गए टाइम यूनिट में वर्तमान मोनोटोनिक समय देता है

os_time/0

वर्तमान OS समय लौटाता है

os_time(unit)

दिए गए टाइम unit में वर्तमान OS समय देता है

otp_release()

Erlang / OTP रिलीज़ नंबर लौटाता है

put_env(enum)

कई पर्यावरण चर सेट करता है

put_env (varname, मान)

एक पर्यावरण चर मूल्य निर्धारित करता है

schedulers()

VM में शेड्यूलर्स की संख्या लौटाता है

schedulers_online()

VM में ऑनलाइन अनुसूचियों की संख्या लौटाता है

stacktrace()

पिछले अपवाद स्टैकट्रेस को पुनः प्राप्त करने के लिए पदावनत तंत्र

रोक (स्थिति \\ 0)

एर्लैंग रनटाइम सिस्टम को सावधानी से रोकता है

system_time/0

में वर्तमान सिस्टम समय देता है :native समय इकाई

system_time(unit)

वर्तमान सिस्टम समय को दिए गए टाइम यूनिट में लौटाता है

time_offset()

एर्लांग वीएम मोनोटोनिक समय और एर्लैंग वीएम सिस्टम समय के बीच वर्तमान समय की भरपाई करता है

time_offset(unit)

एर्लांग वीएम मोनोटोनिक समय और एर्लैंग वीएम सिस्टम समय के बीच वर्तमान समय की भरपाई करता है

tmp_dir!()

लिखने योग्य अस्थायी निर्देशिका, त्रुटि पर अपवाद

tmp_dir()

लिखने योग्य अस्थायी निर्देशिका

unique_integer (संशोधक \\ [])

उत्पन्न करता है और एक पूर्णांक देता है जो वर्तमान रनटाइम उदाहरण में अद्वितीय है

user_home!()

उपयोगकर्ता होम निर्देशिका, त्रुटि पर अपवाद

user_home()

उपयोगकर्ता होम निर्देशिका

version()

अमृत ​​संस्करण की जानकारी

प्रकार

TIME_UNIT ()

time_unit() ::
  :second
  | :millisecond
  | :microsecond
  | :nanosecond
  | pos_integer()
  | :seconds
  | :milliseconds
  | :microseconds
  | :nanoseconds

monotonic_time/1 और अन्य जैसे कार्यों को पारित करने के लिए समय इकाई।

:second :millisecond :microsecond और :nanosecond समय इकाइयां उन कार्यों के रिटर्न मूल्य को नियंत्रित करती हैं जो एक समय इकाई को स्वीकार करते हैं।

एक समय इकाई एक सख्ती से सकारात्मक पूर्णांक भी हो सकती है। इस स्थिति में, यह "प्रति सेकंड भागों" का प्रतिनिधित्व करता है: समय 1 / parts_per_second सेकंड में वापस आ जाएगा। उदाहरण के लिए :millisecond समय इकाई का उपयोग 1000 समय इकाई के रूप में करने के बराबर है (जैसा कि समय 1/1000 सेकंड में वापस आ जाएगा - मिलीसेकंड)।

संस्करण 19.1 से पहले :milli_seconds एपीआई को ध्यान में रखें :nano_seconds समय इकाइयों के रूप में :nano_seconds :micro_seconds और :nano_seconds उपयोग करेगा हालांकि :nano_seconds एसआई सम्मेलन से मेल खाने के लिए अपनी वर्तनी सामान्य करता है।

कार्य

argv ()

argv() :: [String.t()]

कमांड लाइन तर्क सूचीबद्ध करता है।

कार्यक्रम में पारित कमांड लाइन तर्कों की सूची लौटाता है।

argv (args)

argv([String.t()]) :: :ok

कमांड लाइन तर्क को संशोधित करता है।

कमांड लाइन तर्कों की सूची में बदलाव करता है। सावधानी के साथ इसका उपयोग करें, क्योंकि यह किसी भी पिछले argv जानकारी को नष्ट कर देता है।

at_exit (मज़ा)

एक प्रोग्राम एग्जिट हैंडलर फंक्शन रजिस्टर करता है।

एक ऐसा कार्य पंजीकृत करता है जिसे कार्यक्रम के निष्पादन के अंत में लागू किया जाएगा। "स्क्रिप्ट" मोड में हुक लगाने के लिए उपयोगी है।

हैंडलर हमेशा एक अलग प्रक्रिया में निष्पादित होता है, जिसमें इसे पंजीकृत किया गया था। परिणामस्वरूप, किसी भी संसाधन को कॉलिंग प्रक्रिया (ईटीएस टेबल, खुली फाइलें आदि) द्वारा प्रबंधित किया जाता है, जब तक हैंडलर फ़ंक्शन को लागू नहीं किया जाता है तब तक उपलब्ध नहीं होगा। ।

फ़ंक्शन को तर्क के रूप में निकास स्थिति कोड प्राप्त करना होगा।

build_info ()

build_info() :: map()

अमृत ​​निर्माण की जानकारी

एलिक्सिर संस्करण के साथ एक कीवर्ड सूची देता है, संक्षिप्त संशोधन हैश और संकलन तिथि।

cmd (कमांड, आर्ग्स, opts \\ [])

cmd(binary(), [binary()], keyword()) ::
  {Collectable.t(), exit_status :: non_neg_integer()}

दिए गए command को args साथ निष्पादित करता है।

जब तक निरपेक्ष मार्ग नहीं दिया जाता है, command को एक निष्पादन योग्य उपलब्ध होने की उम्मीद है।

args बायनेरिज़ की एक सूची होनी चाहिए जो निष्पादन योग्य को अपने तर्कों के रूप में प्राप्त होगी। इस का मतलब है कि:

  • पर्यावरण चर को प्रक्षेपित नहीं किया जाएगा
  • वाइल्डकार्ड विस्तार नहीं होगा (जब तक कि Path.wildcard/2 का उपयोग स्पष्ट रूप से नहीं किया जाता है)
  • शेल सेफ्टी के लिए तर्कों से बचने या उद्धृत करने की आवश्यकता नहीं है

यह फ़ंक्शन एकत्र किए गए परिणाम और कमांड निकास स्थिति वाले टपल देता है।

आंतरिक रूप से, यह फ़ंक्शन बाहरी दुनिया के साथ बातचीत के लिए एक Port का उपयोग करता है। हालाँकि, यदि आप एक लंबे समय से चलने वाले प्रोग्राम को चलाने की योजना बना रहे हैं, तो पोर्ट्स स्टैंड / स्टडआउट डिवाइस की गारंटी देते हैं, लेकिन यह प्रोग्राम को स्वचालित रूप से समाप्त नहीं करता है। Port मॉड्यूल के लिए प्रलेखन "ज़ोंबी प्रक्रियाओं" अनुभाग के तहत इस समस्या और संभावित समाधान का वर्णन करता है।

उदाहरण

iex> System.cmd("echo", ["hello"])
{"hello\n", 0}

iex> System.cmd("echo", ["hello"], env: [{"MIX_ENV", "test"}])
{"hello\n", 0}

iex> System.cmd("echo", ["hello"], into: IO.stream(:stdio, :line))
hello
{%IO.Stream{}, 0}

विकल्प

  • :into - परिणाम को दिए गए संग्रहणीय, डिफॉल्ट में "" इंजेक्ट करता है
  • :cd - निर्देशिका में कमांड चलाने के लिए
  • :env - tuples का पर्यावरणीय महत्व, बाइनरी के रूप में महत्वपूर्ण है
  • :arg0 - कमांड arg0 सेट करता है
  • :stderr_to_stdout - जब true तो stdout को पुनर्निर्देशित करता true
  • :parallelism - जब true होता true , तो वीएम सिस्टम में समानता लाने के लिए पोर्ट कार्यों को शेड्यूल करेगा। यदि false लिए सेट किया गया false , तो वीएम तुरंत समानता की कीमत पर विलंबता में सुधार करते हुए, कमांड्स करने की कोशिश करेगा। डिफ़ॉल्ट को सिस्टम स्टार्टअप पर "+ spp" तर्क से --erl पर सेट किया जा सकता है।

त्रुटि कारण

यदि अवैध तर्क दिए जाते हैं, तो ArgumentError System.cmd/3 द्वारा उठाया जाता है। System.cmd/3 भी विकल्पों के एक सख्त सेट की अपेक्षा करता है और अज्ञात या अमान्य विकल्प दिए जाने पर बढ़ाएगा।

इसके अलावा, नीचे दिए गए POSIX कारणों में से एक के साथ System.cmd/3 विफल हो सकता है:

  • :system_limit - Erlang एमुलेटर में सभी उपलब्ध पोर्ट उपयोग में हैं

  • :enomem - पोर्ट बनाने के लिए पर्याप्त मेमोरी नहीं थी

  • :eagain - कोई और अधिक उपलब्ध ऑपरेटिंग सिस्टम प्रक्रिया नहीं है

  • :enametoolong - दिया गया बाहरी आदेश बहुत लंबा था

  • :emfile - कोई और अधिक उपलब्ध फ़ाइल डिस्क्रिप्टर नहीं हैं (ऑपरेटिंग सिस्टम प्रक्रिया के लिए जो Erlang emulator चलता है)

  • :enfile - फ़ाइल तालिका पूर्ण है (संपूर्ण ऑपरेटिंग सिस्टम के लिए)

  • :eacces - कमांड एक निष्पादन योग्य फ़ाइल को इंगित नहीं करता है

  • :enoent - कमांड किसी मौजूदा फ़ाइल को इंगित नहीं करता है

शेल कमांड

यदि आप पाइप के साथ पुनर्निर्देशन :os.cmd/1 खोल के अंदर किसी विश्वसनीय कमांड को निष्पादित करना चाहते हैं, तो कृपया जाँच करें :os.cmd/1

compiled_endianness ()

उस एंडियननेस को वापस करता है जिसे सिस्टम ने संकलित किया था।

Convert_time_unit (समय, from_unit, to_unit)

convert_time_unit(integer(), time_unit() | :native, time_unit() | :native) ::
  integer()

समय इकाई से समय इकाई के लिए समय को परिवर्तित time है।

परिणाम मंजिल समारोह के माध्यम से गोल है।

convert_time_unit/3 एक अतिरिक्त समय इकाई ( time_unit/0 प्रकार के लोगों के अलावा) को स्वीकार करता है :native :native एर्लांग रनटाइम सिस्टम द्वारा उपयोग की जाने वाली टाइम यूनिट है। यह तब निर्धारित किया जाता है जब रनटाइम शुरू होता है और रनटाइम बंद होने तक वही रहता है। यह निर्धारित करने के लिए कि :native किसी सिस्टम में :native इकाई की मात्रा क्या है, आप इस फ़ंक्शन को 1 सेकंड में :native समय इकाई (यानी, System.convert_time_unit(1, :second, :native) ) में परिवर्तित कर सकते हैं।

CWD! ()

वर्तमान कार्य निर्देशिका, त्रुटि पर अपवाद।

वर्तमान कार्य निर्देशिका लौटाता है या RuntimeError उठाता है।

CWD ()

वर्तमान काम कर निर्देशिका।

यदि कोई उपलब्ध नहीं है, तो वर्तमान कार्य निर्देशिका या nil लौटाता है।

delete_env (VARNAME)

delete_env(String.t()) :: :ok

एक पर्यावरण चर को हटाता है।

पर्यावरण से चर varname निकालता है।

endianness ()

अंतस लौटाता है।

find_executable (प्रोग्राम)

find_executable(binary()) :: binary() | nil

सिस्टम पर एक निष्पादन योग्य का पता लगाता है।

यह फ़ंक्शन यूनीक्स और विंडोज पर पर्यावरण चर पथ का उपयोग करके अपने नाम दिए गए एक निष्पादन योग्य कार्यक्रम को देखता है। यह प्रत्येक OS के लिए उचित निष्पादन योग्य एक्सटेंशन पर भी विचार करता है, इसलिए विंडोज के लिए यह .com , .cmd या इसी तरह के एक्सटेंशन के साथ फ़ाइलों को देखने का प्रयास करेगा।

get_env ()

get_env() :: %{optional(String.t()) => String.t()}

सभी सिस्टम वातावरण चर देता है।

लौटाया गया मान नाम-मान युग्मों वाला एक मानचित्र है। परिवर्तनीय नाम और उनके मूल्य तार हैं।

get_env (VARNAME)

get_env(String.t()) :: String.t() | nil

दिए गए पर्यावरण चर का मान लौटाता है।

पर्यावरण चर varname का दिया गया मान एक स्ट्रिंग, या nil यदि पर्यावरण चर अपरिभाषित है।

get_pid ()

get_pid() :: binary()

Erlang VM प्रक्रिया पहचानकर्ता।

ऑपरेटिंग सिस्टम वातावरण द्वारा आमतौर पर उपयोग किए जाने वाले प्रारूप में वर्तमान एरलंग एमुलेटर की प्रक्रिया पहचानकर्ता को लौटाता है।

अधिक जानकारी के लिए, देखें :os.getpid/0

पड़ाव (स्थिति \\ 0)

halt(non_neg_integer() | binary() | :abort) :: no_return()

तुरंत एर्लांग रनटाइम सिस्टम को रोक देता है।

अनुप्रयोगों और बंदरगाहों को ठीक से बंद किए बिना Erlang रनटाइम सिस्टम को समाप्त करता है। कृपया सिस्टम के सावधानीपूर्वक बंद के लिए stop/1 देखें।

status एक गैर-नकारात्मक पूर्णांक होनी चाहिए, परमाणु :abort या एक बाइनरी।

  • यदि कोई पूर्णांक, रनटाइम सिस्टम पूर्णांक मान से बाहर निकलता है जो ऑपरेटिंग सिस्टम में वापस आ जाता है।

  • यदि :abort , रनटाइम सिस्टम कोर डंप का उत्पादन करता है, तो वह ऑपरेटिंग सिस्टम में सक्षम है।

  • यदि एक स्ट्रिंग, स्लोगन के रूप में स्थिति के साथ एक एरलांग क्रैश डंप का उत्पादन किया जाता है, और फिर रनटाइम सिस्टम स्थिति कोड 1 से बाहर निकलता है।

ध्यान दें कि कई प्लेटफार्मों पर, केवल 0-255 स्थिति कोड ऑपरेटिंग सिस्टम द्वारा समर्थित हैं।

अधिक जानकारी के लिए, देखें :erlang.halt/1

उदाहरण

System.halt(0)
System.halt(1)
System.halt(:abort)

monotonic_time ()

monotonic_time() :: integer()

में वर्तमान मोनोटोनिक समय देता है :native समय इकाई।

यह समय एकात्मक रूप से बढ़ रहा है और समय में एक अनिर्दिष्ट बिंदु से शुरू होता है।

संकलक द्वारा झुका हुआ।

monotonic_time (इकाई)

monotonic_time(time_unit()) :: integer()

दिए गए टाइम यूनिट में वर्तमान मोनोटोनिक समय देता है।

यह समय एकात्मक रूप से बढ़ रहा है और समय में एक अनिर्दिष्ट बिंदु से शुरू होता है।

os_time ()

os_time() :: integer()

वर्तमान OS समय लौटाता है।

परिणाम में वापस आ गया है :native समय इकाई।

यह समय बिना किसी सीमा के समय के साथ आगे या पीछे समायोजित किया जा सकता है और एकरस नहीं है।

संकलक द्वारा झुका हुआ।

os_time (इकाई)

os_time(time_unit()) :: integer()

दिए गए टाइम unit में वर्तमान OS समय देता है।

यह समय बिना किसी सीमा के समय के साथ आगे या पीछे समायोजित किया जा सकता है और एकरस नहीं है।

otp_release ()

otp_release() :: String.t()

Erlang / OTP रिलीज़ नंबर लौटाता है।

put_env (enum)

put_env(Enumerable.t()) :: :ok

कई पर्यावरण चर सेट करता है।

प्रत्येक वातावरण चर के लिए एक नया मान सेट करता है जो प्रत्येक {key, value} जोड़ी के लिए enum

put_env (varname, मान)

put_env(binary(), binary()) :: :ok

एक पर्यावरण चर मूल्य निर्धारित करता है।

पर्यावरण चर varname लिए एक नया value सेट करता है।

शेड्यूलर ()

schedulers() :: pos_integer()

VM में शेड्यूलर्स की संख्या लौटाता है।

schedulers_online ()

schedulers_online() :: pos_integer()

VM में ऑनलाइन अनुसूचियों की संख्या लौटाता है।

स्टैक ट्रेस()

पिछले अपवाद स्टैकट्रेस को पुनः प्राप्त करने के लिए पदावनत तंत्र।

रेस्क्यू / कैच के बाहर स्टैकट्रेस तक पहुंच को हटा दिया जाता है। यदि आप केवल Elixir v1.7 + का समर्थन करना चाहते हैं, तो आपको बचाव / कैच के अंदर __STACKTRACE__/0 उपयोग करना होगा। यदि आप पहले के अमृत संस्करणों का समर्थन करना चाहते हैं, तो बचाव / कैच के अंदर System.stacktrace/0 को स्थानांतरित करें।

ध्यान दें कि एर्लैंग वीएम (और इसलिए यह फ़ंक्शन) वर्तमान स्टैकट्रेस वापस नहीं करता है, बल्कि नवीनतम अपवाद के स्टैकट्रेस है।

स्टॉप (स्थिति \\ 0) (1.5.0 के बाद से)

stop(non_neg_integer() | binary()) :: no_return()

एर्लैंग रनटाइम सिस्टम को सावधानी से रोकता है।

सभी अनुप्रयोगों को सुचारू रूप से नीचे ले जाया जाता है, सभी कोड अनलोड किए जाते हैं, और सिस्टम बंद होने से पहले सभी पोर्ट बंद हो जाते हैं।

status एक गैर-नकारात्मक पूर्णांक मान होना चाहिए जो रनटाइम सिस्टम द्वारा ऑपरेटिंग सिस्टम को लौटाया जाता है।

ध्यान दें कि कई प्लेटफार्मों पर, केवल 0-255 स्थिति कोड ऑपरेटिंग सिस्टम द्वारा समर्थित हैं।

अधिक जानकारी के लिए, देखें :init.stop/1

उदाहरण

System.stop(0)
System.stop(1)

सिस्टम का समय()

system_time() :: integer()

में वर्तमान सिस्टम समय देता है :native समय इकाई।

यह os_time/0 का VM दृश्य है। वे समय-वार के मामले में मेल नहीं खाते, हालांकि VM उन्हें संरेखित करने की दिशा में काम करता है। यह समय एकरस नहीं है।

संकलक द्वारा झुका हुआ।

system_time (इकाई)

system_time(time_unit()) :: integer()

वर्तमान सिस्टम समय को दिए गए टाइम यूनिट में लौटाता है।

यह os_time/0 का VM दृश्य है। वे समय-वार के मामले में मेल नहीं खाते, हालांकि VM उन्हें संरेखित करने की दिशा में काम करता है। यह समय एकरस नहीं है।

समय का निर्धारण()

time_offset() :: integer()

एर्लांग वीएम मोनोटोनिक समय और एर्लैंग वीएम सिस्टम समय के बीच वर्तमान समय की भरपाई करता है।

परिणाम में वापस आ गया है :native समय इकाई।

अधिक जानकारी के लिए time_offset(unit) देखें।

संकलक द्वारा झुका हुआ।

time_offset (इकाई)

time_offset(time_unit()) :: integer()

एर्लांग वीएम मोनोटोनिक समय और एर्लैंग वीएम सिस्टम समय के बीच वर्तमान समय की भरपाई करता है।

परिणाम दिए गए टाइम यूनिट unit में वापस आ जाता है। लौटाए गए ऑफसेट, एक एरलंग मोनोटोनिक समय में जोड़ा गया (जैसे, monotonic_time/1 साथ प्राप्त), एरलंग सिस्टम समय देता है जो उस मोनोटोनिक समय से मेल खाता है।

tmp_dir! ()

लिखने योग्य अस्थायी निर्देशिका, त्रुटि पर अपवाद।

tmp_dir() समान है, लेकिन यदि कोई अस्थायी dir सेट नहीं है, तो nil वापस करने के बजाय tmp_dir() उठाता है।

tmp_dir ()

लिखने योग्य अस्थायी निर्देशिका।

एक लेखन योग्य अस्थायी निर्देशिका देता है। निम्नलिखित क्रम में निर्देशिकाओं के लिए खोजें:

  1. TMPDIR पर्यावरण चर द्वारा नामित निर्देशिका
  2. TEMP पर्यावरण चर द्वारा नामित निर्देशिका
  3. TMP पर्यावरण चर द्वारा नामित निर्देशिका
  4. C:\TMP विंडोज पर या /tmp यूनिक्स पर
  5. अंतिम उपाय के रूप में, वर्तमान कार्यशील निर्देशिका

यदि उपर्युक्त में से कोई भी योग्य नहीं है, तो रिटर्न देता है।

unique_integer (संशोधक \\ [])

unique_integer([:positive | :monotonic]) :: integer()

उत्पन्न करता है और एक पूर्णांक देता है जो वर्तमान रनटाइम उदाहरण में अद्वितीय है।

"अद्वितीय" का अर्थ है कि यह फ़ंक्शन, जिसे modifiers की समान सूची के साथ कहा जाता है, कभी भी एक ही पूर्णांक को वर्तमान सीमा उदाहरण पर एक से अधिक बार नहीं लौटाएगा।

यदि modifiers [] , तो एक अद्वितीय पूर्णांक (जो सकारात्मक या नकारात्मक हो सकता है) वापस आ जाता है। लौटे पूर्णांक के गुणों को बदलने के लिए अन्य संशोधन किए जा सकते हैं:

  • :positive - लौटा हुआ पूर्णांक धनात्मक होने की गारंटी है।
  • :monotonic - लौटा हुआ पूर्णांक नीरस रूप से बढ़ रहा है। इसका मतलब यह है कि, एक ही रनटाइम उदाहरण पर (लेकिन विभिन्न प्रक्रियाओं पर भी), पूर्णांक का उपयोग करके लौटा :monotonic संशोधक हमेशा के साथ लगातार :monotonic द्वारा दिए गए पूर्णांक से कम होगा :monotonic संशोधक।

ऊपर सूचीबद्ध सभी संशोधक संयुक्त हो सकते हैं; मॉडिफायर्स में बार-बार होने वाले modifiers को नजरअंदाज किया जाएगा।

संकलक द्वारा झुका हुआ।

user_home! ()

उपयोगकर्ता होम निर्देशिका, त्रुटि पर अपवाद।

user_home() समान है, लेकिन यदि कोई उपयोगकर्ता घर पर सेट नहीं है, तो user_home() वापस करने के बजाय user_home() उठाता है।

user_home ()

उपयोगकर्ता होम निर्देशिका।

उपयोगकर्ता होम डायरेक्टरी (प्लेटफ़ॉर्म स्वतंत्र) लौटाता है।

संस्करण ()

version() :: String.t()

अमृत ​​संस्करण की जानकारी।

बाइनरी के रूप में एलिक्सिर का संस्करण लौटाता है।