आईसीमेक - क्लाउड में ऑनलाइन

यह कमांड icmake है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


icmake - एक प्रोग्राम रखरखाव (बनाना) उपयोगिता का उपयोग करना C-व्याकरण की तरह

SYNOPSIS


icmake [विकल्प] स्रोत[.im] [dest[.bim]] [-- [तर्क]]

icmun bimfile

वर्णन


Icmake(1) के विकल्प के रूप में उपयोग किया जा सकता है बनाना(1). अपने मानक ऑपरेशन मोड में, यह
निम्नलिखित प्रोग्राम को कॉल करता है:

o आईसीएम-पीपी icmake फ़ाइल को प्रीप्रोसेस करने के लिए

o आईसीएम-कॉम्प बाइट-कोड संकलित करने के लिए icmake s

o आईसीएम-कार्यकारी बाइट-कोड फ़ाइल को निष्पादित करने के लिए

Icmake प्रोग्रामर को एक प्रोग्रामिंग भाषा का उपयोग करने की अनुमति देता है (जो प्रसिद्ध से काफी मिलती-जुलती है
C-प्रोग्रामिंग भाषा) उन क्रियाओं को परिभाषित करने के लिए जो (जटिल) कार्यक्रम में शामिल हैं
रखरखाव। इसके लिए, icmake विभिन्न विशेष ऑपरेटरों के साथ-साथ समर्थन का एक सेट भी प्रदान करता है
ऐसे फ़ंक्शन जो प्रोग्राम रखरखाव में उपयोगी साबित हुए हैं।

कार्यक्रम icmun(1) का उपयोग संकलित बाइट-कोड (.bim) फ़ाइल को अलग करने के लिए किया जा सकता है। इकमुन
मुख्य रूप से चित्रण, शिक्षा और डिबगिंग के लिए उपयोग किया जाता है।

हेडर फ़ाइलों को संशोधित करने के बाद पारंपरिक मेक-यूटिलिटीज़ स्रोतों को पुन: संकलित करती हैं। में
के संदर्भ सी + + कार्यक्रम विकास यह अक्सर एक बुरा विचार है, जैसे किसी नए सदस्य को जोड़ना
क्लास के लिए आम तौर पर आपको क्लास के स्रोतों को दोबारा संकलित करने की आवश्यकता नहीं होती है। क्लास को संभालने के लिए
निर्भरता icmbuld(1) निरीक्षण कर सकता है कक्षाओं फ़ाइलें जिनका उपयोग निर्भरता को परिभाषित करने के लिए किया जा सकता है
कक्षाओं के बीच. डिफ़ॉल्ट रूप से, वर्ग-निर्भरता की व्याख्या नहीं की जाती है। को देखें icmconf(7)
अधिक जानकारी के लिए मैन-पेज।

विकल्प


Icmake निम्नलिखित फ़ाइलों और विकल्पों का उपयोग करता है:

o स्रोत: icmake स्क्रिप्ट स्रोत फ़ाइल (डिफ़ॉल्ट एक्सटेंशन: ।मैं हूँ).

o गंतव्य: बाइनरी icmake स्क्रिप्ट फ़ाइल (डिफ़ॉल्ट: `स्रोत'.बिम, जिसे `.bim फ़ाइल' कहा जाता है
नीचे).

o --: icmake तर्क विभाजक अलग करना icmake तर्कों से तर्क पारित
.bim फ़ाइल के लिए() आर्ग: तर्क निम्नलिखित -- .bim फ़ाइल में भेज दिए जाते हैं
जैसा है, और से उपलब्ध हैं सूची अर्जीवी पैरामीटर के रूप में परिभाषित किया गया है icmake
स्क्रिप्ट का मुख्य फ़ंक्शन का दूसरा पैरामीटर (नीचे अनुभाग में देखें)। USER परिभाषित
कार्य). कुछ विकल्पों के लिए (नीचे देखें)। -- विभाजक की आवश्यकता नहीं है.

Icmake आगे वर्णित विभिन्न विकल्पों का समर्थन करता है। -h विकल्प अन्य सभी को खारिज कर देता है
विकल्प, -a विकल्प को छोड़कर अन्य सभी विकल्पों को खारिज कर देता है -h. शेष क्रिया का
विकल्प (-बी, -सी, -e, -मैं, -p और -t) केवल एक ही निर्दिष्ट किया जा सकता है:

o -a
के बारे में जानकारी दिखाएं icmake, द्वारा खारिज कर दिया गया -h;

o -b
बंद: इसके बजाय विकल्प -e का उपयोग करें;

o -c
la icmake स्रोत फ़ाइल को संकलित किया जाता है, एक .bim फ़ाइल उत्पन्न की जाती है;

o -e
निष्पादित करें icmake .bim फ़ाइल, के रूप में दी गई है icmakeका पहला फ़ाइल तर्क. कोई अतिरिक्त
तर्कों को .bim फ़ाइल में वैसे ही पारित किया जाता है, और -- निर्दिष्ट नहीं किया जाना चाहिए;

o -F
फ़ाइल नाम और झंडे के साथ-साथ किए जाने वाले सभी कार्यों का अवलोकन
icmake मानक आउटपुट स्ट्रीम पर दिखाए जाते हैं;

o -h
उपयोग की जानकारी और समाप्ति प्रदान करें icmake;

o -i
पहला तर्क है icmake स्रोत फ़ाइल, डिफ़ॉल्ट बाइनरी फ़ाइल है
यदि आवश्यक हो तो निर्माण किया जाए। कोई भी अतिरिक्त तर्क .bim फ़ाइल में भेज दिया जाता है
जैसा है, और -- निर्दिष्ट नहीं किया जाना चाहिए;

o -p
la icmake स्रोत फ़ाइल केवल पूर्व-संसाधित है, और पूर्व-संसाधित फ़ाइल लिखी गई है
सेवा मेरे icmakeका दूसरा फ़ाइल तर्क (डिफ़ॉल्ट रूप से `स्रोत'.पिम);

o -q
अनदेखा किया गया, भविष्य में हटा दिया जाएगा icmake संस्करण;

o -t
निम्नलिखित तर्क -t एक अस्थायी .bim फ़ाइल का नाम है, जिसे हटा दिया गया है
बाद icmakeका कॉल. कब . अस्थायी .bim फ़ाइल के नाम के रूप में निर्दिष्ट किया गया है
फिर डिफ़ॉल्ट अस्थायी निर्देशिका, उसके बाद icmakeकी प्रक्रिया-आईडी, उसके बाद
.बिम प्रयोग किया जाता है।

अस्थायी .bim फ़ाइल के नाम के बाद का नाम icmake स्रोत स्क्रिप्ट
निर्दिष्ट किया जाना चाहिए. कोई भी अतिरिक्त तर्क वैसे ही .bim फ़ाइल में भेज दिया जाता है, और
-- निर्दिष्ट नहीं किया जाना चाहिए; स्रोत स्क्रिप्ट फ़ाइल के निष्पादन योग्य ध्वज को सेट करने के बाद
(परिवर्तन विद्या +x लिपि), और इसे इस तरह एक प्रारंभिक पंक्ति प्रदान करना:

#!/usr/bin/icmake -t.

la icmake स्क्रिप्ट को सीधे कहा जा सकता है:

स्क्रिप्ट arg1 arg2

किस मामले में icmake लिपि 'स्क्रिप्ट' इसे प्राप्त करते समय निष्पादित किया जाता है
तर्क लिपि आर्ग1 आर्ग2.

o -T
यह विकल्प उस निर्देशिका के नाम के साथ प्रदान किया जाना चाहिए जिसका उपयोग स्टोर करने के लिए किया जाता है
अस्थायी फ़ाइलें। उदाहरण के लिए, संकलित करते समय icmake स्क्रिप्ट, का आउटपुट icmakeहै
प्रीप्रोसेसर एक अस्थायी फ़ाइल है जिसे बाहर निकलने पर हटा दिया जाता है। डिफ़ॉल्ट रूप से / Tmp प्रयोग किया जाता है,
जब तक / Tmp एक लिखने योग्य निर्देशिका नहीं है, ऐसी स्थिति में वर्तमान उपयोगकर्ता की $ HOME
निर्देशिका का उपयोग किया जाता है. अंतर्निहित अस्थायी फ़ाइल नाम हमेशा की प्रक्रिया आईडी से शुरू होते हैं
वर्तमान icmake प्रक्रिया.

o -v
प्रदर्शन icmakeका संस्करण क्रमांक, और अंत icmake, द्वारा खारिज कर दिया गया -h

इकमुन:

bimfile: बाइनरी icmake स्क्रिप्ट फाइल।

पूर्वप्रक्रमक निर्देशों


निम्नलिखित प्रीप्रोसेसर निर्देश उपलब्ध हैं:

हे टिप्पणी:
मानक C टिप्पणी (सभी के बीच) /* और */) साथ ही टिप्पणी-से-पंक्ति के अंत तक (सभी)।
पंक्ति की सामग्री निम्नलिखित है //) की उपेक्षा की जाती है।

o शेल स्टार्टअप: की पहली पंक्ति icmake-स्क्रिप्ट से शुरुआत हो सकती है #!पथ, जहां
पथ के पूर्ण स्थान को परिभाषित करता है icmake कार्यक्रम. स्क्रिप्ट बनाकर
निष्पादन योग्य, इसे स्पष्ट रूप से कॉल किए बिना कॉल किया जा सकता है icmake.

उदाहरण के लिए, यदि (निष्पादन योग्य) icmakefile 'icm' की पहली पंक्ति (विस्तार के बिना)
शामिल हैं

#!/usr/bin/icmake -i

फिर icm एक आदेश के रूप में जारी किया जा सकता है, इस प्रकार निष्पादन किया जा सकता है

/usr/bin/icmake -i आईसीएम...

वैकल्पिक रूप से,

#!/usr/bin/icmake -t /tmp/icm

का उपयोग किया जा सकता है, जिसके परिणामस्वरूप निष्पादन होगा

#!/usr/bin/icmake -t /tmp/icm आईसीएम ...

इस स्थिति में बाहर निकलने पर बाइनरी फ़ाइल हटा दी जाती है।

o # शामिल "फ़ाइल का नाम"
फ़ाइल फ़ाइल का नाम निर्देश के स्थान पर शामिल है

o # शामिल
फ़ाइल फ़ाइल का नाम के स्थान पर शामिल है # शामिल निर्देश; फ़ाइल का नाम
द्वारा निर्दिष्ट कोलन-पृथक निर्देशिकाओं में खोजा जाता है IM वातावरण
चर। की पहली घटना फ़ाइल का नाम द्वारा निर्दिष्ट निर्देशिकाओं में IM
पर्यावरण चर का उपयोग किया जाता है।

o #define पहचानकर्ता [परिभाषा]
टेक्स्ट पहचानकर्ता द्वारा प्रतिस्थापित किया जाएगा परिभाषा. परिभाषा में शामिल हो सकता है
का उपयोग करके पहले से परिभाषित पहचानकर्ताओं के संदर्भ ${पहचानकर्ता} प्रारूप। यदि
${पहचानकर्ता} पाठ को (अभी तक) परिभाषित नहीं किया गया है ${पहचानकर्ता} वस्तुतः रखा गया है।
अधिकतम 100 पर अनंत पुनरावृत्ति को रोकने के लिए ${पहचानकर्ता} प्रतिस्थापन की अनुमति है.

यदि किसी पंक्ति का अंतिम वर्ण a है तो परिभाषाएँ अगली पंक्ति में जारी रहती हैं
बैकस्लैश (). (जो परिभाषा में शामिल नहीं है)। प्रीप्रोसेसर
डबल-कोटेड स्ट्रिंग्स को जोड़ता है, और डबल-कोटेड स्ट्रिंग्स एकाधिक तक नहीं फैल सकती हैं
पंक्तियाँ. परिभाषाओं में एकाधिक रिक्त स्थान (दोहरे उद्धृत स्ट्रिंग के बाहर) हैं
एक रिक्त स्थान के लिए अनुबंध किया गया।

परिभाषा निम्नलिखित है #define की पहचानकर्ता वैकल्पिक है. यदि छोड़ दिया जाए तो
मैक्रो परिभाषित है, इसलिए इसका उपयोग किया जा सकता है #if(n) def निर्देश (नीचे देखें), लेकिन वे
में किसी पाठ द्वारा प्रतिस्थापित नहीं किया जाता है icmake कोड कथन.

o #ifdef पहचानकर्ता
अगर पहचानकर्ता मैक्रो को कोड के अगले ब्लॉक (मिलान होने तक) परिभाषित किया गया था #else
or #endif निर्देश पढ़ा गया) बाइट-संकलित है। अन्यथा, कोड का ब्लॉक है
अवहेलना करना।

o #ifndef पहचानकर्ता
अगर पहचानकर्ता मैक्रो था नहीं कोड के अगले ब्लॉक को परिभाषित किया (मिलान होने तक)।
#else or #endif निर्देश का पता चला) बाइट-संकलित है। अन्यथा, का ब्लॉक
कोड को नजरअंदाज कर दिया गया है.

o #else
ए को समाप्त करता है #ifdef और #ifndef निर्देश, स्वीकृति निर्णय को उलटने के बारे में
निम्नलिखित कोड. केवल एक #else निर्देश से संबद्ध किया जा सकता है #if(n) def
दिशा निर्देशों।

o #endif
मिलान पर शुरू होने वाले प्रीप्रोसेसर ब्लॉक को समाप्त करता है #ifdef, #ifndef or #else
निर्देश। NS #endif निर्देशिका और उसका मिलान #if(n) def निर्देश होना चाहिए
उसी फ़ाइल में निर्दिष्ट।

o # कुंड पहचानकर्ता
हटाना पहचानकर्ता परिभाषित प्रतीकों के सेट से. इससे कोई प्रभाव नहीं पड़ता
जिसमें किसी भी पहले से परिभाषित प्रतीकों की विशिष्टता पहचानकर्ता का परिभाषा
इस्तेमाल किया गया है। अगर पहचानकर्ता परिभाषित नहीं किया गया है एक चेतावनी जारी की गई है।

आंकड़े प्रकार


Icmake इन डेटा प्रकारों का समर्थन करता है:

o ASCII चरित्र स्थिर
ASCII वर्ण स्थिरांक में एक वर्ण होता है, जो एकल या दोहरे से घिरा होता है
उद्धरण। एकल वर्ण (जैसे, 'ए') स्वयं चरित्र का प्रतिनिधित्व करते हैं। मानक
भागने के क्रम (जैसे, '\एन') समर्थित हैं और उनके परिवर्तित मानक का प्रतिनिधित्व करते हैं
मूल्य (जैसे, '\एन' एएससीआईआई मान 10 (दशमलव) का प्रतिनिधित्व करता है)। गैर-मानक पलायन
अनुक्रम (जैसे, '\एक्स') एस्केप कैरेक्टर के बाद एएससीआईआई कैरेक्टर का प्रतिनिधित्व करता है
(इसलिए '\एक्स' के बराबर होती है 'एक्स'). तीन अष्टक अंकों से युक्त एस्केप अनुक्रम दर्शाते हैं
ऑक्टल मान मॉड्यूलो 256 के अनुरूप एएससीआईआई वर्ण (उदाहरण के लिए, '\123').
एस्केप अनुक्रम जिसमें एक x और उसके बाद दो हेक्साडेसिमल अंक शामिल होते हैं, दर्शाते हैं
हेक्साडेसिमल मान के अनुरूप एएससीआईआई वर्ण (उदाहरण के लिए, '\xa4').

o int
अभिन्न मूल्य, से लेकर -0x8000 पूज्य गुरुदेव के मार्गदर्शन से संपन्न कर सकते हैं - 0x7ff. int स्थिरांक हो सकते हैं
दशमलव संख्याओं (अंक 1 से 9 तक प्रारंभ), अष्टक संख्याओं के रूप में निर्दिष्ट
(0 से प्रारंभ, उसके बाद एक या अधिक अष्टक अंक) हेक्साडेसिमल संख्याएँ
(0x से शुरू, उसके बाद एक या अधिक हेक्साडेसिमल अंक) या जैसे ASCII
चरित्र स्थिरांक।

o स्ट्रिंग
पाठ चर. स्ट्रिंग स्थिरांक को दोहरे उद्धरण चिह्नों द्वारा सीमांकित किया जाता है। एकाधिक स्ट्रिंग
स्थिरांकों को संयोजित किया जा सकता है, लेकिन एक एकल स्ट्रिंग स्थिरांक एकाधिक तक नहीं फैल सकता है
पंक्तियाँ. स्ट्रिंग स्थिरांक केवल सफेद स्थान से अलग किए गए हैं (यानी, रिक्त स्थान, नई लाइनें,
टिप्पणी) संयोजित हैं और एक एकल स्ट्रिंग स्थिरांक का प्रतिनिधित्व करते हैं। एक इंगित करने के लिए
एक स्ट्रिंग में पंक्ति के अंत का निरंतर उपयोग करें \n निकास का क्रम।

दोहरे उद्धरण चिह्नों से घिरे ASCII वर्ण स्थिरांक का भी उपयोग किया जा सकता है
अंकगणितीय अभिव्यक्तियाँ यदि ऑपरेंड में से एक है int. एकल पात्र
स्ट्रिंग स्थिरांक चाहिए एक स्थिर रहो, और एक नहीं हो सकता स्ट्रिंग चर।

इसी तरह, एकल उद्धरण चिह्नों से घिरे ASCII वर्ण स्थिरांक का उपयोग किया जा सकता है
ऐसी परिस्थितियाँ जहाँ एक स्ट्रिंग ऑपरेंड अपेक्षित है।

o सूची
एक डेटा संरचना जिसमें व्यक्तिगत रूप से पहुंच योग्य श्रृंखला होती है स्ट्रिंग मान। कब
किसी सूची में तत्व होते हैं, इसका पहला तत्व सूचकांक 0 द्वारा दर्शाया जाता है।

o शून्य
यह इंगित करने के लिए फ़ंक्शन परिभाषाओं के साथ उपयोग किया जाता है कि फ़ंक्शन कोई रिटर्न नहीं देता है
मूल्य.

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

वेरिएबल परिभाषित होने पर उन्हें प्रारंभ किया जा सकता है। प्रारंभिक अभिव्यक्तियाँ हैं, वह
पूर्व या उपयोगकर्ता-परिभाषित फ़ंक्शंस, स्थिर मान और वेरिएबल के मान का उपयोग कर सकते हैं
परिभाषा के बिंदु पर दिखाई देता है.

पूर्वनिर्धारित स्थिरांक


निम्नलिखित स्थिरांक पूर्वनिर्धारित हैं icmake. सभी स्थिर हैं int मान:

────────────────────────────────
प्रतीक मान के लिए अभिप्रेत है
────────────────────────────────
O_ALL 8 मेकलिस्ट
O_DIR 2 मेकलिस्ट
O_FILE 1 मेकलिस्ट
O_SUBDIR 4 मेकलिस्ट
────────────────────────────────
बंद 0 प्रतिध्वनि
1 प्रतिध्वनि पर
────────────────────────────────
P_CHECK 0 सिस्टम कॉल
P_NOCHECK 1 सिस्टम कॉल
────────────────────────────────
S_IEXEC 32 स्टेट
S_IFCHR 1 स्टेट
S_IFDIR 2 स्टेट
S_IFREG 4 स्टेट
S_IREAD 8 स्टेट
S_IWRITE 16 स्टेट
────────────────────────────────

निम्नलिखित स्थिरांक वास्तुकला पर निर्भर हैं:

─────────────────────────────────── ────────── ────────────
प्लेटफ़ॉर्म पर परिभाषित होने पर प्रतीक 1, अन्यथा 0
─────────────────────────────────── ────────── ────────────
यूनिक्स यूनिक्स, आमतौर पर जीएनयू के जीसीसी कंपाइलर के साथ
UNIX वैकल्पिक रूप से उपलब्ध हो सकता है
लिनक्स x86 लिनक्स चला रहा है (आमतौर पर जीसीसी के साथ)
LINUX वैकल्पिक रूप से उपलब्ध हो सकता है
M_SYSV, M_UNIX x86 SCO/Unix चला रहा है
_POSIX _SOURCE यूनिक्स पॉज़िक्स अनुरूप कंपाइलर के साथ
__hpux HP-UX, देशी HP कंपाइलर के साथ
─────────────────────────────────── ────────── ────────────

ऑपरेटरों


int-टाइप किया हुआ ऑपरेंड(ओं):

सब C ऑपरेटर उपलब्ध हैं (पॉइंटर ऑपरेटरों को छोड़कर, जैसे icmake समर्थन नहीं करता
संकेतक)। वे उनकी तरह काम करते हैं C-प्रोग्रामिंग भाषा समकक्ष।

स्ट्रिंग-टाइप ऑपरेंड(ओं):

के लिए स्ट्रिंग प्रकार चर और/या स्थिरांक निम्नलिखित ऑपरेटर उपलब्ध हैं (a और b
प्रतिनिधित्व स्ट्रिंग चर या स्थिरांक):

o a + b: एक नया लौटाता है स्ट्रिंग मान का संयोजन शामिल है स्ट्रिंग मानों a
और b। ध्यान दें कि स्ट्रिंग स्थिरांकों को सीधे संयोजित किया जा सकता है (बिना उपयोग किए)। +
ऑपरेटर), उदाहरण के लिए, निम्नलिखित दो पंक्तियाँ दोनों स्ट्रिंग को परिभाषित करती हैं "नमस्ते दुनिया":

"हैलो वर्ल्ड"
"हैलो" + "दुनिया"

o a += b: a होना चाहिए एक स्ट्रिंग परिवर्तनशील, जिससे स्ट्रिंग परिवर्तनशील या मूल्य b is
संलग्न।

ओ स्ट्रिंग तुलना: ऑपरेटर्स == != <= >= < > != और == पर लागू किया जा सकता है स्ट्रिंग
मान या चर, यदि तुलना सफल होती है तो 1 लौटाता है, अन्यथा 0 लौटाता है।
तुलना मामले के प्रति संवेदनशील होती है, और परिभाषित क्रम या वर्णों का पालन करती है
में ASCII अक्षरों का समूह।

o !a: बूलियन ! (नहीं) ऑपरेटर 1 लौटाता है यदि स्ट्रिंग a खाली है, अन्यथा 0 है
लौटा हुआ।

o a छोटा b, a नए b: फ़ाइल होने पर 1 लौटाता है a फ़ाइल से अधिक नवीनतम है b. जैसे,
"source.cc" नए "source.o". फ़ाइलें a और b अस्तित्व में होना जरूरी नहीं है: यदि दोनों नहीं हैं
अस्तित्व 0 लौटाया गया है; अगर b मौजूद नहीं है, 1 लौटा दिया गया है; अगर a मौजूद नहीं है 0 है
लौटा हुआ; यदि वे समान रूप से पुराने हैं तो 0 लौटा दिया जाता है। (द मौजूद() पूर्वनिर्धारित कार्य
(नीचे देखें, अनुभाग पूर्वनिर्धारित कार्य) का उपयोग स्पष्ट रूप से परीक्षण करने के लिए किया जा सकता है कि क्या a
फ़ाइल मौजूद)।

o a बड़े b: यदि फ़ाइल 1 हो जाती है a फ़ाइल से पुरानी है b. जैसे, "libprog.a" बड़े
"source.o". फ़ाइलें a और b अस्तित्व में होना जरूरी नहीं है: यदि दोनों मौजूद नहीं हैं तो 0 है
लौटा हुआ; अगर a मौजूद नहीं है, 1 लौटा दिया गया है; अगर b अस्तित्व में नहीं है 0 लौटा दिया गया है; अगर
वे समान रूप से पुराने हैं 0 लौटा दिया गया है।

o []: इंडेक्स ऑपरेटर एक स्ट्रिंग वेरिएबल या स्थिरांक से एक चरित्र पुनर्प्राप्त करता है: यह
एक स्ट्रिंग को एक के रूप में लौटाता है प्रतिद्वंद्विता. इसलिए, निम्न कथन ठीक से संकलित होता है:

// मान लें कि str1 और str2 स्ट्रिंग हैं
str1 = str2[3];

लेकिन निम्नलिखित कथन संकलित नहीं होगा:

str2[3] = "ए";

यदि कोई अमान्य सूचकांक मान प्रदान किया जाता है तो एक खाली स्ट्रिंग लौटा दी जाती है।

o `बैकटिक` ऑपरेटर (`स्ट्रिंग सीएमडी`)
दो बैकटिक्स के बीच रखी गई एक स्ट्रिंग को निष्पादित किया जाता है पोप करना(3) कार्य.
कमांड द्वारा जेनरेट किया गया मानक आउटपुट जो स्ट्रिंग तर्क में संग्रहीत है
एक सूची के रूप में लौटाया गया। एक खाली सूची इंगित करती है कि आदेश निष्पादित नहीं किया जा सका।
एक कमांड जिसे निष्पादित किया जा सकता था लेकिन कोई आउटपुट नहीं दिया गया वह एक सूची लौटाता है
जिसमें एक खाली तत्व है। कमांड का मानक त्रुटि स्ट्रीम आउटपुट नहीं है
बैकटिक ऑपरेटर द्वारा एकत्र किया गया। हालाँकि, मानक शेल पुनर्निर्देशन हो सकता है
मानक त्रुटि स्ट्रीम के आउटपुट को एकत्रित करने के लिए उपयोग किया जाता है। उदाहरण:

प्रिंटफ(`"ls"`); // तत्वों को प्रिंट करता है
// वर्तमान निर्देशिका

पूर्वनिर्धारित कार्य eval(स्ट्रिंग सीएमडी) बिल्कुल बैकटिक की तरह व्यवहार करता है
संचालक: वे पर्यायवाची हैं।

सूची-प्रकार ऑपरेंड(ओं):

के लिए सूची प्रकार चर और/या मान निम्नलिखित ऑपरेटर उपलब्ध हैं:

o a + b: एक नया लौटाता है सूची मान का संयोजन शामिल है सूची मानों a और
b। ये है नहीं एक सेट ऑपरेशन: यदि कोई तत्व दोनों में दिखाई देता है a में और b, वे करेंगे
परिणामी सूची में दो बार दिखाई देता है (सेट-अतिरिक्त अंतर्निहित द्वारा प्रदान किया जाता है
समारोह listunion).

o a - b: एक नया लौटाता है सूची वह मान जिसमें तत्व शामिल हैं a जो मौजूद नहीं हैं
in b। इस is एक सेट-डिफ़रेंस ऑपरेशन: लौटाई गई सूची में सभी तत्व शामिल हैं
in a जो के तत्व नहीं हैं b.

o a += b: में तत्व b में तत्वों में जोड़ा जाता है a, जो एक होना चाहिए सूची
चर। यह है नहीं एक सेट ऑपरेशन.

o a -= b: में तत्व b में तत्वों से हटा दिया जाता है a, जो एक होना चाहिए सूची
चर। यह is एक सेट ऑपरेशन: के सभी तत्व a जो इसमें पाए जाते हैं b रहे
से निकाला गया a.

o सूची समानता तुलना: ऑपरेटर्स != और == पर लागू किया जा सकता है सूची मान या
चर। ऑपरेटर == यदि दोनों सूचियों में तत्व-दर-तत्व समान है तो 1 लौटाता है
तत्व, अन्यथा 0 लौटाया जाता है। ऑपरेटर != के परिणाम को उलट देता है ==.

o !a: बूलियन ! यदि ऑपरेटर 1 लौटाता है सूची a खाली है, अन्यथा 0 है
लौटा हुआ।

o []: इंडेक्स ऑपरेटर एक सूची चर से एक सूची तत्व पुनर्प्राप्त करता है: यह एक रिटर्न देता है
एक के रूप में स्ट्रिंग प्रतिद्वंद्विता. इसलिए, निम्न कथन ठीक से संकलित होता है:

// मान लें कि lst एक सूची है, str एक स्ट्रिंग है
str = lst[3];

लेकिन निम्नलिखित कथन संकलित नहीं होगा:

एलएसटी[3] = स्ट्र;

यदि कोई अमान्य सूचकांक मान प्रदान किया जाता है तो एक खाली स्ट्रिंग लौटा दी जाती है।

कास्टिंग:

मानक का उपयोग करके टाइप-कास्ट का प्रदर्शन किया जा सकता है C कास्ट-ऑपरेटर कास्ट करने के लिए:

o स्ट्रिंग्स से इनट्स और इसके विपरीत ((int)"123", (स्ट्रिंग)55)

o सूचियों के लिए स्ट्रिंग्स (सूची LST = (सूची)"हैलो")

फ्लो नियंत्रण


Icmake का निम्नलिखित उपसमुच्चय प्रदान करता है Cके बयान. इनका उपयोग इस प्रकार किया जा सकता है C
प्रोग्रामिंग भाषा।

o अभिव्यक्ति ;
सादा अभिव्यक्ति कथन;

o यौगिक कथन
किसी भी प्रकार के वेरिएबल को किसी भी कंपाउंड के अंदर कहीं भी परिभाषित और आरंभीकृत किया जा सकता है
बयान। दृश्यता किसी चर का प्रारंभ उसके परिभाषा बिंदु से होता है।

o if (स्थिति) कथन
कंडीशन के अंदर एक वेरिएबल को परिभाषित और आरंभीकृत किया जा सकता है। जैसे,

अगर (स्ट्रिंग str = getText())
प्रक्रिया(str);

इस उदाहरण में, प्रक्रिया यदि नहीं कहा जाता है gettext () एक खाली स्ट्रिंग लौटाता है।
परिवर्तनशील str के पहले या बाद में अस्तित्व में नहीं है if बयान।

o if (स्थिति) कथन अन्य कथन
पिछले कथन की तरह, शर्त के अंदर एक चर को परिभाषित किया जा सकता है और
आरंभ किया गया।

o एसटी (इस में; स्थिति; वेतन वृद्धि) कथन
वेरिएबल्स (एक ही प्रकार के) को प्रारंभ किया जा सकता है (और वैकल्पिक रूप से परिभाषित किया जा सकता है)।
init अनुभाग। NS init, शर्त और वेतन वृद्धि अनुभाग खाली रह सकते हैं.
खाली स्थिति अनुभाग की व्याख्या 'हमेशा' के रूप में की जाती है <strong>उद्देश्य</strong>'.

o जब (स्थिति) कथन
कंडीशन के अंदर एक वेरिएबल को परिभाषित और आरंभीकृत किया जा सकता है।
एक पूरक do ... जबकि() बयान उपलब्ध नहीं है. ध्यान दें कि परिभाषित करना a
वैरिएबल, इनिशियलाइज़ेशन एक्सप्रेशन का उपयोग करने का मतलब है कि इनिशियलाइज़ेशन
अभिव्यक्ति को प्रत्येक पुनरावृत्ति पर निष्पादित किया जाता है जब कथन। तो निम्नलिखित
कथन कभी समाप्त नहीं होगा, और मान 10 की कभी न ख़त्म होने वाली धारा प्रदर्शित करेगा:

जबकि (int x = 10)
प्रिंटफ(x--, "\n");

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

Be सलाह दी: मान नहीं लौटाने वाले गैर-शून्य फ़ंक्शंस का व्यवहार अपरिभाषित है।

o तोड़ना
पत्ते एसटी और जब कथन, कथन की शर्त को खारिज करते हुए।

o जारी रखने के
ए के अगले पुनरावृत्ति के साथ जारी है एसटी or जब बयान।

o बाहर निकलें(अभिव्यक्ति)
का निष्पादन समाप्त होता है icmake-लिखी हुई कहानी। अभिव्यक्ति एक का मूल्यांकन करना चाहिए int
मान, जो स्क्रिप्ट का निकास मान बन जाता है।

पूर्वनिर्धारित कार्य


Icmake निम्नलिखित पूर्वनिर्धारित फ़ंक्शन प्रदान करता है, जिनका उपयोग कहीं भी किया जा सकता है icmake
स्क्रिप्ट. निम्नलिखित अवलोकन को फ़ंक्शन नाम के अनुसार वर्णानुक्रम में क्रमबद्ध किया गया है।

o शून्य आर्गहेड(स्ट्रिंग h)
का सहायक कार्य कार्यकारी () (नीचे भी देखें कार्यकारी ()): 'तर्क शीर्ष' को परिभाषित करता है,
के साथ प्रयोग किया जाना है कार्यकारी (). डिफ़ॉल्ट रूप से, 'तर्क शीर्ष' एक खाली स्ट्रिंग है।

o शून्य argtail (डोरी t)
का सहायक कार्य कार्यकारी () (नीचे भी देखें कार्यकारी ()): 'तर्क पूँछ' को परिभाषित करता है,
के साथ प्रयोग किया जाना है कार्यकारी (). डिफ़ॉल्ट रूप से, `तर्क पूंछ' एक खाली स्ट्रिंग है।

o int एएससीआई (स्ट्रिंग) s)
का पहला अक्षर लौटाता है s एक इंट के रूप में; उदाहरणार्थ, एएससीआईआई('ए') रिटर्न 65;

o स्ट्रिंग एएससीआई(int i)
रिटर्न i एक स्ट्रिंग के रूप में, उदाहरण के लिए, ASCII(65) स्ट्रिंग लौटाता है "ए";

o स्ट्रिंग चेंज_बेस(स्ट्रिंग फ़ाइल, स्ट्रिंग न्यूबेस)
का बेसनेम बदलता है पट्टिका, बदला हुआ नाम लौटाता है। जैसे,
Change_base("/path/demo.im", "बाहर") रिटर्न "/path/out.im";

o स्ट्रिंग Change_ext(स्ट्रिंग फ़ाइल, स्ट्रिंग नया अगला)
का विस्तार बदलता है पट्टिका, बदला हुआ नाम लौटाता है। जैसे,
rss_changeExt("source.cc", "ओ") रिटर्न "source.o";

o स्ट्रिंग परिवर्तन_पथ(स्ट्रिंग फ़ाइल, स्ट्रिंग नया रास्ता)
के पथ विनिर्देश को बदलता है पट्टिका, बदला हुआ नाम लौटाता है। जैसे,
परिवर्तन_पथ('टीएमपी/बाइनरी', "/ Usr / bin") रिटर्न "/usr/bin/बाइनरी"। ध्यान दें कि
/-आवश्यकता पड़ने पर सेपरेटर डाला जाता है।

o स्ट्रिंग chdir(स्ट्रिंग न्यूडिर)
स्क्रिप्ट की कार्यशील निर्देशिका को बदलता है, पिछली निर्देशिका को पूर्ण के रूप में लौटाता है
पथ।

उपयोग chdir("।") वर्तमान कार्यशील निर्देशिका प्राप्त करने के लिए, chdir('') करने के लिए इस्तेमाल किया जा सकता है
स्टार्टअप कार्यशील निर्देशिका प्राप्त करें (यह कार्यक्षमता रिलीज़ में टूट गई थी
7.00 से पहले, लेकिन अब चालू है)। फ़ंक्शन समाप्त हो जाता है
icmake-स्क्रिप्ट यदि निर्दिष्ट है न्यूडिर मौजूद नहीं है।

o स्ट्रिंग चदिर (इं जाँच, स्ट्रिंग न्यूडिर)
पिछले फ़ंक्शन के समान ही कार्यक्षमता, लेकिन निर्दिष्ट करके जाँच as
P_NOCHECK. फ़ंक्शन स्क्रिप्ट को समाप्त नहीं करेगा. बल्कि, यह वापस कर देगा
स्क्रिप्ट की वर्तमान कार्यशील निर्देशिका।

o सीएमडीहेड(स्ट्रिंग h)
का सहायक कार्य कार्यकारी () (नीचे भी देखें कार्यकारी ()): एक `कमांड हेड' को परिभाषित करता है
के साथ प्रयोग किया जाए कार्यकारी (). डिफ़ॉल्ट रूप से, `कमांड हेड' एक खाली स्ट्रिंग है।

o सीएमडीटेल(स्ट्रिंग t)
का सहायक कार्य कार्यकारी () (नीचे भी देखें कार्यकारी ()): एक `कमांड टेल' को परिभाषित करता है
के साथ प्रयोग किया जाए कार्यकारी (). डिफ़ॉल्ट रूप से, `कमांड टेल' एक खाली स्ट्रिंग है।

o प्रतिध्वनि(int विकल्प)
बुलाए गए प्रोग्रामों (और उनके तर्कों) की प्रतिध्वनि को नियंत्रित करता है, निर्दिष्ट करें बंद अगर गूंज रहा है
अनुरोध नहीं किया गया है. डिफ़ॉल्ट रूप से प्रतिध्वनि(चालू) प्रयोग किया जाता है।

o स्ट्रिंग तत्व(int सूचकांक, सूची (या डोरी) वर)
इंडेक्स ऑपरेटर के समान कार्य करता है: इंडेक्स को देखें ([]) ऑपरेटर में
अनुभाग ऑपरेटरों.

o सूची eval(स्ट्रिंग एसटीआर)
यह फ़ंक्शन बैकटिक ऑपरेटर के समान कार्य करता है। उदाहरण के साथ प्रदान किया गया
इसलिए बैकटिक ऑपरेटर को इस तरह भी लिखा जा सकता था:

प्रिंटफ(eval('ls'); // वर्तमान में तत्वों को प्रिंट करता है
// निर्देशिका

o कार्यकारी(स्ट्रिंग cmd, ...)
तर्कों के साथ आदेश निष्पादित करता है। प्रत्येक तर्क के उपसर्ग इसके द्वारा लगाया जाएगा आर्गहेड()है
तर्क और द्वारा पोस्टफ़िक्स किया गया आर्गटेल()का तर्क. ध्यान दें कि कोई रिक्त स्थान नहीं डाला गया है
के बीच आर्गहेड()की सामग्री, उचित तर्क, और आर्गटेल()का तर्क. सभी
इस प्रकार संशोधित तर्कों को संयोजित किया जाता है, इस बार एकल रिक्त स्थान से अलग किया जाता है, और
फिर सीएमडीहेड()की सामग्री कमांड और पहले तर्क के बीच डाली जाती है
(दोनों तरफ एकल रिक्त स्थान द्वारा सीमांकित) और सीएमडीटेल()की सामग्री संलग्न है
तर्कों के लिए (फिर से, एक रिक्त द्वारा अलग किया गया)। पथ पता लगाने के लिए खोजा जाता है
सीएमडी. 0 लौटाया गया है.

o कार्यकारी(int चेकसीएमडी, स्ट्रिंग cmd, ...)
पिछले फ़ंक्शन के समान ही कार्यक्षमता, लेकिन निर्दिष्ट करके जाँच as
जाँच नहीं की गई है फ़ंक्शन स्क्रिप्ट को समाप्त नहीं करेगा. बल्कि, यह वापस कर देगा
कमांड की निकास स्थिति कहा जाता है, या 0x7f00 यदि आदेश नहीं मिला।

o निष्पादित करें (स्ट्रिंग cmd, स्ट्रिंग सीएमडीएचडी, स्ट्रिंग arghd, ... स्ट्रिंग argtl, स्ट्रिंग सीएमडीटीएल)
के समान कार्यकारी (), लेकिन कमांड हेड/टेल और तर्क हेड/टेल निर्दिष्ट होना चाहिए।

वास्तव में निष्पादित कमांड से प्रारंभ होता है सीएमडी, द्वारा पीछा सीएमडीएचडी. आगे एक शृंखला है
तर्कों का क्रम इस प्रकार है, प्रत्येक संलग्न है arghd और argtl. आदेश यहीं समाप्त होता है
सीएमडीटीएल. 0 लौटाया गया है

o निष्पादित करें(int जाँच, स्ट्रिंग cmd, स्ट्रिंग सीएमडीएचडी, स्ट्रिंग arghd, ... स्ट्रिंग argtl,
स्ट्रिंग सीएमडीटीएल)
पिछले फ़ंक्शन के समान ही कार्यक्षमता, लेकिन निर्दिष्ट करके जाँच as
जाँच नहीं की गई है फ़ंक्शन स्क्रिप्ट को समाप्त नहीं करेगा. बल्कि, यह वापस कर देगा
कमांड की निकास स्थिति कहा जाता है, या 0x7f00 यदि आदेश नहीं मिला।

o int मौजूद है (स्ट्रिंग फाइल)
यदि एक गैर-शून्य मान लौटाता है पट्टिका मौजूद है, अन्यथा 0 लौटाया जाता है।

o सूची fgets(स्ट्रिंग फ़ाइल, सूची ऑफसेट)
नोट: in icmake संस्करण 8.00.00 से इस फ़ंक्शन का प्रोटोटाइप बदल दिया गया था
सूची fgets(स्ट्रिंग फ़ाइल, int ऑफसेट) सेवा मेरे सूची fgets(स्ट्रिंग फ़ाइल, सूची ऑफसेट).

अगली पंक्ति इसमें निहित ऑफसेट पर पाई गई ओफ़्सेट से पढ़ा जाता है पट्टिका. एक पास करें
को खाली सूची fgets पढ़ने के लिए पट्टिका इसकी शुरुआत से.

यह एक सूची लौटाता है जिसमें पहले तत्व के रूप में पढ़ी गई पंक्ति की सामग्री शामिल होती है
(के बिना \n लाइन टर्मिनेटर), इसके दूसरे तत्व के रूप में लाइन का टर्मिनेटर `\n'
(यदि सामना हुआ), और इसके तीसरे तत्व के रूप में स्ट्रिंग OK यदि कोई पंक्ति सफलतापूर्वक थी
पढ़ा, असफल यदि फ़ाइल से पढ़ना विफल रहा। ईओएफ पर पढ़ते समय एक खाली सूची होती है
लौटा हुआ। लौटाई गई सूची में अतिरिक्त तत्व शामिल हो सकते हैं, जो आंतरिक रूप से हैं
के द्वारा प्रयोग किया fgets अगली पंक्ति पढ़ते समय.

एकाधिक पंक्तियों को पढ़ने के लिए, एक खाली सूची को इस रूप में पास करके प्रारंभ करें मिलता है दूसरा तर्क.
अगली पंक्तियों को पढ़ने के लिए, पहले लौटाई गई सूची को पास करें fgets दूसरा
तर्क।

यहां एक उदाहरण दिया गया है जिसमें दिखाया गया है कि पूरी फ़ाइल कैसे पढ़ें:

सूची रेट;
जबकि (1)
{
ret = fgets("फ़ाइल नाम", ret);
यदि (!ret)
तोड़;
प्रक्रिया(ret[0], ret[1]);
}

o int fprintf(स्ट्रिंग फ़ाइल का नाम, ...)
फ़ाइल में सभी (अल्पविराम से अलग) तर्क जोड़ता है फ़ाइल का नाम. की संख्या लौटाता है
मुद्रित तर्क.

o int fprintf(स्ट्रिंग फ़ाइल का नाम, स्ट्रिंग प्रारूप, ...)
फ़ाइल में सभी (अल्पविराम से अलग) तर्क जोड़ता है फ़ाइल का नाम. की संख्या लौटाता है
मुद्रित तर्क.

If प्रारूप प्लेसहोल्डर्स शामिल हैं %1 .. %n आउटपुट स्वरूपित है (यह भी देखें
strformat). ध्यान दें कि इस मामले में तर्क गणना (भी) इससे आगे शुरू होती है
प्रारूप स्ट्रिंग: निम्नलिखित पहला तर्क प्रारूप के रूप में जाना जाता है %1.

o स्ट्रिंग get_base(string फाइल)
का आधार नाम लौटाता है पट्टिका. आधार नाम बिना पथ उपसर्ग वाली फ़ाइल है
और इसके विस्तार के बिना. विस्तार अंतिम से शुरू होने वाली सभी जानकारी है
फ़ाइल नाम में बिंदु. यदि कोई अंतिम बिंदु नहीं मिलता है, तो फ़ाइल का नाम आधार नाम है।
जैसे, का आधार नाम अब के बराबर होती है a, का आधार नाम एबीसी के बराबर होती है अब, आधार
का नाम ए/बी/सी के बराबर होती है c.

o स्ट्रिंग प्राप्त करें()
अगली दबाई गई कुंजी को एक स्ट्रिंग के रूप में लौटाता है (`एंटर' दबाने की आवश्यकता नहीं है)।

o स्ट्रिंग get_dext(स्ट्रिंग फाइल)
का विस्तार लौटाता है पट्टिका, अलग करने वाले बिंदु सहित। विस्तार ही सब कुछ है
फ़ाइल नाम के अंतिम बिंदु से शुरू होने वाली जानकारी।

यदि कोई अंतिम बिंदु नहीं मिलता है, तो एक खाली स्ट्रिंग लौटा दी जाती है।

o सूची getenv(स्ट्रिंग envvar)
पर्यावरण चर का मान लौटाता है एन्वर: दो तत्वों वाली सूची में:

पहला तत्व इंगित करता है कि क्या पर्यावरण चर परिभाषित किया गया था (मान
"1") या नहीं (मान "0");
दूसरा तत्व पर्यावरण चर के मान को इंगित करता है।

पर्यावरण चर रूप के होते हैं चर = मान, और यदि सूची को परिभाषित किया गया है
दूसरा तत्व शामिल है मूल्य. यदि मान खाली है, तो चर परिभाषित किया गया है, लेकिन
इससे कोई पाठ संबद्ध नहीं है.

o स्ट्रिंग get_ext(स्ट्रिंग फाइल)
का विस्तार लौटाता है पट्टिका, अलग करने वाले बिंदु को छोड़कर। विस्तार ही सब कुछ है
फ़ाइल नाम में अंतिम बिंदु से शुरू होने वाली जानकारी।

यदि कोई अंतिम बिंदु नहीं मिलता है, तो एक खाली स्ट्रिंग लौटा दी जाती है।

o int गेटपिड()
आईसीमेक बाइट कोड दुभाषिया की प्रक्रिया-आईडी लौटाता है आईसीएम-कार्यकारी.

o स्ट्रिंग हो जाता है ()
कीबोर्ड से पढ़ी गई अगली पंक्ति को a के रूप में लौटाता है स्ट्रिंग. लाइन पर प्रवेश किया
कीबोर्ड को 'एंटर' कुंजी द्वारा समाप्त किया जाना चाहिए, जो रिटर्न में संग्रहीत नहीं है
स्ट्रिंग.

o स्ट्रिंग get_path(स्ट्रिंग फाइल)
का पथ-उपसर्ग लौटाता है पट्टिका. पथ उपसर्ग (और) तक की सारी जानकारी है
सहित) अंतिम निर्देशिका विभाजक (जो ऑपरेटिंग पर निर्भर करता है
सिस्टम, एक फॉरवर्ड- या बैकस्लैश)।

यदि कोई पथ नहीं मिलता है, तो एक खाली स्ट्रिंग लौटा दी जाती है।

o int सूची खोजें(सूची प्रथम, स्ट्रिंग एसटीआर)
में पहला सूचकांक लौटाता है LST जहां स्ट्रिंग str पाया जाता है, या -1 यदि LST नहीं होता है
शामिल str.

o int लिस्टलेन(सूची l)
तत्वों की संख्या लौटाता है सूची.

o सूची लिस्टयूनियन(सूची एलएचएस, सूची आरएचएस)
तत्वों के संघ से युक्त एक सूची लौटाता है एलएचएस और आरएचएस.

o सूची लिस्टयूनियन(सूची प्रथम, स्ट्रिंग एसटीआर)
तत्वों के संघ से युक्त एक सूची लौटाता है LST और str.

o सूची मेकलिस्ट(स्ट्रिंग नकाब)
मेल खाने वाली सभी फ़ाइलों की एक सूची लौटाता है मुखौटा. जैसे, मेकलिस्ट('*.c') एक सूची लौटाता है
जिसमें समाप्त होने वाली सभी फ़ाइलें शामिल हैं .c.

o सूची मेकलिस्ट(प्रकार, स्ट्रिंग नकाब)
पिछले फ़ंक्शन के समान, लेकिन निर्देशिका तत्वों का प्रकार हो सकता है
इसके पहले तर्क के रूप में निर्दिष्ट:

प्रतीक अर्थ
IS_ALL सभी निर्देशिका प्रविष्टियाँ प्राप्त करता है
IS_DIR सहित सभी निर्देशिकाएँ प्राप्त करें। और ..
IS_FILE फ़ाइलों की एक सूची प्राप्त करें
IS_SUBDIR सभी उपनिर्देशिकाएँ प्राप्त करता है

ध्यान दें कि पैटर्न * यूनिक्स-प्रकार के संचालन के अंतर्गत छिपी हुई प्रविष्टियों से मेल नहीं खाएगा
सिस्टम. उपयोग .* उसके लिए।

o सूची मेकलिस्ट(स्ट्रिंग मुखौटा, नया, स्ट्रिंग तुलनाफ़ाइल)
मास्क से मेल खाने वाली सभी फाइलों की सूची लौटाता है जो दिए गए से नई हैं
तुलनाफ़ाइल. ऑपरेटर छोटा के बजाय इस्तेमाल किया जा सकता है नए। ध्यान दें कि नए और
छोटा ऑपरेटर हैं, स्ट्रिंग नहीं।

o सूची मेकलिस्ट([int = IS_FILE,] स्ट्रिंग मुखौटा, नया, स्ट्रिंग तुलनाफ़ाइल)
पिछले फ़ंक्शन के समान, लेकिन टाइप के रूप में निर्दिष्ट किया जा सकता है सूची मेकलिस्ट(प्रकार,
स्ट्रिंग नकाब).

o मेकलिस्ट(स्ट्रिंग मुखौटा, पुराने, स्ट्रिंग तुलनाफ़ाइल)
ऊपर देखें; उन फ़ाइलों की सूची लौटाता है जो कंपेयरफ़ाइल से पुरानी हैं।

o मेकलिस्ट(प्रकार, स्ट्रिंग मुखौटा, पुराने, स्ट्रिंग तुलनाफ़ाइल)
पिछले फ़ंक्शन के समान, लेकिन टाइप के रूप में निर्दिष्ट किया जा सकता है सूची मेकलिस्ट(प्रकार,
स्ट्रिंग नकाब).

o int प्रिंटफ(...)
स्क्रीन पर सभी (अल्पविराम से अलग) तर्क दिखाता है (यानी, मानक आउटपुट स्ट्रीम)।
मुद्रित तर्कों की संख्या लौटाता है।

o int प्रिंटफ(स्ट्रिंग प्रारूप, ...)
स्क्रीन पर सभी (अल्पविराम से अलग) तर्क दिखाता है (यानी, मानक आउटपुट स्ट्रीम)।
मुद्रित तर्कों की संख्या लौटाता है (द प्रारूप स्ट्रिंग को एक तर्क के रूप में गिना जाता है)।

If प्रारूप प्लेसहोल्डर्स शामिल हैं %1 .. %n आउटपुट स्वरूपित है (यह भी देखें
strformat).

o int पुटेनव(स्ट्रिंग envvar)
जोड़ता है एन्वर: वर्तमान तक (icmake) पर्यावरण प्रारूप का उपयोग करें: "VAR=मान"।
0 रिटर्न।

o स्ट्रिंग आकार बदलें (स्ट्रिंग) स्ट्र, int नई लंबाई) स्ट्रिंग की एक प्रति लौटाता है str, का आकार बदला गया
नई लंबाई पात्र। अगर नई लंबाई नकारात्मक है तो एक खाली स्ट्रिंग लौटा दी जाती है,
if नई लंबाई से अधिक एसटीआर length तब नए जोड़े गए वर्ण प्रारंभ किए जाते हैं
रिक्त स्थानों के लिए.

o int आकार(सूची l)
अस्वीकृत: उपयोग करें लिस्टलेन.

o int साइज़ोफ़लिस्ट(सूची l)
अस्वीकृत: उपयोग करें लिस्टलेन.

o सूची स्टेट(स्ट्रिंग प्रवेश)
रिटर्न स्टेट(2) निर्देशिका प्रविष्टि की जानकारी प्रविष्टि एक सूची के रूप में. लौटाई गई सूची
इसमें दो तत्व हैं: तत्व 0 है गुण मूल्य, तत्व 1 में का आकार शामिल है
फ़ाइल।

विशेषताएँ बिट-फ़्लैग के रूप में लौटाई जाती हैं, जो निम्नलिखित पूर्वनिर्धारित से बनी होती हैं
स्थिरांक:

एस_आईएफसीएचआर एस_आईएफडीआईआर एस_आईएफआरईजी
S_IREAD S_IWRITE S_IEXEC

देखना स्टेट(2) इन स्थिरांकों के अर्थ के लिए मैनुअल पेज।

o सूची स्टेट(चेकिंग, स्ट्रिंग प्रवेश)
पिछले फ़ंक्शन के समान, लेकिन निर्दिष्ट करके जाँच as P_NOCHECK समारोह
स्क्रिप्ट समाप्त नहीं होगी. बल्कि, यह वापस आ जाता है स्टेट(2) का वापसी मूल्य।

o int strchr(स्ट्रिंग स्ट्र, स्ट्रिंग वर्ण)
में पहला सूचकांक लौटाता है str जहां कोई भी पात्र हो टैंक पाया जाता है, या -1
if str इसमें कोई भी पात्र शामिल नहीं है टैंक.

o int स्ट्रलेन(स्ट्रिंग एसटीआर)
में वर्णों की संख्या लौटाता है str (अंतिम 0 की गिनती नहीं)।

o int strfind (स्ट्रिंग घास का ढेर, स्ट्रिंग सुई)
में सूचकांक लौटाता है सूखी घास का ढेर जहां सुई पाया जाता है, या -1 यदि सुई निहित नहीं है
in सूखी घास का ढेर.
इस समारोह था बुलाया strstr () in संस्करणों से पहले 7.00.

o int स्ट्रेफ़ॉर्मेट(स्ट्रिंग प्रारूप,...)
तर्कों को संबोधित करने के लिए प्लेसहोल्डर्स %1 .. %2 का उपयोग करके एक स्वरूपित स्ट्रिंग लौटाता है
निम्नलिखित प्रारूप.
उदाहरण:

शून्य मुख्य ()
{
int i = 10;
पूर्णांक जे = 20;
स्ट्रिंग s1;
स्ट्रिंग s2;
// परंपरागत दृष्टिकोण:
s1 = (स्ट्रिंग)i + " " + (स्ट्रिंग)j + " " + (स्ट्रिंग)i;
// स्ट्रेफ़ॉर्मेट का उपयोग करना:
s2 = strformat('%1 %2 %1', i, j);
प्रिंटफ ("s1 = %1, s2 = %2\n", s1, s2);
}

o स्ट्रिंग strlwr(स्ट्रिंग s)
का लोअर-केस डुप्लिकेट लौटाता है s.

o सूची स्ट्रोक(स्ट्रिंग स्ट्र, स्ट्रिंग विभाजक)
सभी सबस्ट्रिंग्स वाली एक सूची लौटाता है str एक या अधिक से अलग किया हुआ
(लगातार) वर्ण विभाजक. जैसे, स्ट्रोक ("हैलो icmake's+world", " +")
तीन स्ट्रिंग वाली सूची लौटाता है "नमस्ते", "आईसीमेक", तथा "दुनिया".

o स्ट्रिंग strupr(स्ट्रिंग s)
का अपरकेस डुप्लिकेट लौटाता है s.

o स्ट्रिंग सबस्ट्र(स्ट्रिंग पाठ, int ऑफसेट, int गिनती करना)
का एक सबस्ट्रिंग लौटाता है टेक्स्ट, पे शुरुवात ओफ़्सेट, से मिलकर गणना पात्र। अगर
ओफ़्सेट स्ट्रिंग के आकार से अधिक (या बराबर) है या यदि गणना <= 0, फिर एक खाली स्ट्रिंग
लौटा दिया जाता है. अगर ओफ़्सेट 0 से कम है तो 0 का प्रयोग किया जाता है।

o int सिस्टम (स्ट्रिंग आदेश)
निष्पादित करता है आदेश. रिटर्न मान निष्पादित कमांड के निकास मान को इंगित करता है।
स्ट्रिंग आदेश पुनर्निर्देशन और/या पाइपिंग वर्ण शामिल हो सकते हैं।

o int सिस्टम(int जाँच, स्ट्रिंग आदेश)
पिछले फ़ंक्शन के समान ही कार्यक्षमता, लेकिन निर्दिष्ट करके जाँच as
जाँच नहीं की गई है फ़ंक्शन स्क्रिप्ट को समाप्त नहीं करेगा. बल्कि, यह वापस कर देगा
कमांड की निकास स्थिति कहा जाता है, या 0x7f00 यदि आदेश नहीं मिला।

o स्ट्रिंग ट्रिम (स्ट्रिंग) s)
की एक प्रति लौटाता है s अग्रणी और अनुगामी श्वेत स्थानों के बिना।

o स्ट्रिंग त्रिबाएँ(स्ट्रिंग एसटीआर)
की एक प्रति लौटाता है s अग्रणी सफेद रिक्त स्थान के बिना.

o स्ट्रिंग ट्रिम (स्ट्रिंग) s)
की एक प्रति लौटाता है s सफेद रिक्त स्थान का अनुसरण किए बिना।

USER परिभाषित कार्य


शून्य मुख्य

Icmake स्क्रिप्ट को उपयोगकर्ता-परिभाषित फ़ंक्शन के साथ प्रदान किया जाना चाहिए मुख्य। कार्यक्रम मुख्य है
तीन वैकल्पिक पैरामीटर, जिन्हें अंतिम से छोड़ा जा सकता है (envp) को पहले
(एर्गसी), में तरह C. इसका पूर्ण प्रोटोटाइप है (नोट: शून्य वापसी प्रकार):

शून्य मुख्य (int argc, सूची argv, सूची envp)

In मुख्य(),

o एर्गसी में तत्वों की संख्या का प्रतिनिधित्व करता है अर्जीवी;

o अर्जीवी इसमें तर्क शामिल हैं, तत्व 0 .bim के नाम के बराबर है
फ़ाइल;

o envp इसमें 'पर्यावरण' चर शामिल हैं। कार्यक्रम लिस्टलेन करने के लिए इस्तेमाल किया जा सकता है
इसके तत्वों की संख्या ज्ञात कीजिए। में तत्व envp रूप है
चर = मान. वैकल्पिक रूप से, फ़ंक्शन गेटेंव a को पुनः प्राप्त करने के लिए उपयोग किया जा सकता है
विशिष्ट पर्यावरण चर तुरंत। उदाहरण:

शून्य मुख्य(int argc, सूची argv)
{
संकलित करने के लिए सूची;
पूर्णांक आईडीएक्स;

अगर (argc == 1)
उपयोग(तत्व(0, argv));

यदि (संकलन करने के लिए = परिवर्तित("*.cc"))
{
के लिए (idx = length(toCompile); idx--; )
संकलित करें (तत्व (idx, toCompile));

अगर (getenv("dryrun")[0] == "0")
लिंकिंग(तत्व(2, argv));
}
}

सभी वैश्विक चरों को उनकी परिभाषाओं के क्रम में प्रारंभ करने के बाद मुख्य द्वारा बुलाया जाता है
icmakeअतिरिक्त कार्य करने के लिए रन-टाइम समर्थन प्रणाली।

इसके अतिरिक्त परिभाषित उपयोगकर्ता कार्यों

अतिरिक्त कार्यों को परिभाषित किया जा सकता है. एक बार परिभाषित होने के बाद, इन फ़ंक्शंस को कॉल किया जा सकता है। आगे
किसी भी चर या फ़ंक्शंस का संदर्भ समर्थित नहीं है, लेकिन पुनरावर्ती रूप से कॉल करना
कार्य है. चूँकि फ़ंक्शन घोषणाएँ समर्थित नहीं हैं, इसलिए अप्रत्यक्ष रिकर्सन समर्थित नहीं है
या तो समर्थित.

उपयोगकर्ता-परिभाषित फ़ंक्शन में निम्नलिखित तत्व होने चाहिए:

o फ़ंक्शन का रिटर्न प्रकार, जो इनमें से एक होना चाहिए खालीपन, NS, स्ट्रिंग or सूची। क्या आप वहां मौजूद हैं
कोई डिफ़ॉल्ट प्रकार नहीं है.

o फ़ंक्शन का नाम, उदाहरण के लिए, संकलन.

o एक पैरामीटर सूची, जो शून्य या अधिक अल्पविराम से अलग किए गए पैरामीटर को परिभाषित करती है। पैरामीटर
स्वयं एक प्रकार के नाम से मिलकर बनता है (NS, स्ट्रिंगया, सूची) के बाद
पैरामीटर का पहचानकर्ता. जैसे, (डोरी आउटफाइल, स्ट्रिंग स्रोत).

ओ ए परिवर्तन घुंघराले ब्रेसिज़ की एक जोड़ी से घिरा हुआ ({ और }).

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

परिवर्तनीय परिभाषाओं के अतिरिक्त, निकायों में शून्य या अधिक कथन हो सकते हैं (cf.
अनुभाग फ्लो नियंत्रण). ध्यान दें कि चर को परिभाषित किया जा सकता है (और वैकल्पिक रूप से प्रारंभ किया जा सकता है)
कहीं भी अंदर के कार्यों में, और अंदर भी अगर, एसटी और जब बयान।

का व्यवहार icmake-गैर-शून्य फ़ंक्शंस का उपयोग करने वाली स्क्रिप्ट जो मान वापस नहीं करती हैं, ऐसा नहीं है
परिभाषित।

onworks.net सेवाओं का उपयोग करके icmake ऑनलाइन का उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम