icmun - ক্লাউডে অনলাইন

এটি হল icmun কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


icmake - একটি প্রোগ্রাম রক্ষণাবেক্ষণ (করা) ইউটিলিটি ব্যবহার করে একটি C- ব্যাকরণের মত

সাইনোপিসিস


আইকমেক [বিকল্প] উৎস [.im] [ডেস্ট[.বিম]] [-- [আর্গস]]

icmun bimfile

বর্ণনাঃ


আইকমেক(1) এর বিকল্প হিসাবে ব্যবহার করা যেতে পারে করা(1)। এর স্ট্যান্ডার্ড অপারেশন মোডে, এটি
নিম্নলিখিত প্রোগ্রাম কল করে:

o icm-pp icmake ফাইলটি প্রিপ্রসেস করতে

o আইসিএম-কম্প বাইট-কোড কম্পাইল করতে আইকমেক s

o icm-exec বাইট কোড ফাইল চালানোর জন্য

আইকমেক প্রোগ্রামারদের একটি প্রোগ্রামিং ভাষা ব্যবহার করার অনুমতি দেয় (ঘনিষ্ঠভাবে সুপরিচিত ভাষার সাথে সাদৃশ্যপূর্ণ
C-প্রোগ্রামিং ভাষা) (জটিল) প্রোগ্রামের সাথে জড়িত ক্রিয়াগুলিকে সংজ্ঞায়িত করতে
রক্ষণাবেক্ষণ এই জন্য, আইকমেক বিভিন্ন বিশেষ অপারেটরের পাশাপাশি সমর্থনের একটি সেট অফার করে
ফাংশন যা প্রোগ্রাম রক্ষণাবেক্ষণে কার্যকর প্রমাণিত হয়েছে।

কার্যক্রম icmun(1) কম্পাইল করা বাইট-কোড (.bim) ফাইলটিকে আলাদা করতে ব্যবহার করা যেতে পারে। আইকমুন
প্রাথমিকভাবে চিত্রণ, শিক্ষা এবং ডিবাগিংয়ের জন্য ব্যবহৃত হয়।

হেডার ফাইল পরিবর্তন করা হলে ঐতিহ্যবাহী মেক-ইউটিলিটি সোর্স পুনরায় কম্পাইল করে। মধ্যে
প্রসঙ্গ সি ++ প্রোগ্রাম ডেভেলপমেন্ট এটি প্রায়ই একটি খারাপ ধারণা, যেমন একটিতে একটি নতুন সদস্য যোগ করা
ক্লাসের জন্য সাধারণত ক্লাসের উত্সগুলি পুনরায় কম্পাইল করার প্রয়োজন হয় না। ক্লাস সামলাতে
নির্ভরতা icmbuld(1) পরিদর্শন করতে পারে ক্লাস ফাইল যা নির্ভরতা সংজ্ঞায়িত করতে ব্যবহার করা যেতে পারে
ক্লাসের মধ্যে। ডিফল্টরূপে, শ্রেণী-নির্ভরতা ব্যাখ্যা করা হয় না। পড়ুন icmconf(২০১০)
আরও বিস্তারিত জানার জন্য ম্যান-পৃষ্ঠা।

বিকল্প


আইকমেক নিম্নলিখিত ফাইল এবং বিকল্প ব্যবহার করে:

o উৎস: আইকমেক স্ক্রিপ্ট সোর্স ফাইল (ডিফল্ট এক্সটেনশন: .im).

o DEST: বাইনারি আইকমেক স্ক্রিপ্ট ফাইল (ডিফল্ট: `উৎস'.বিম, `.bim ফাইল' বলা হয়
নিচে).

o --: আইকমেক আর্গুমেন্ট বিভাজক বিভাজক আইকমেক আর্গুমেন্ট থেকে আর্গুমেন্ট পাস
.bim filenl() এর কাছে args: আর্গুমেন্ট নিম্নলিখিত -- .bim ফাইলে পাস করা হয়
যেমন আছে, এবং থেকে পাওয়া যায় তালিকা argv পরামিতি হিসাবে সংজ্ঞায়িত আইকমেক
স্ক্রিপ্ট এর প্রধান ফাংশনের দ্বিতীয় প্যারামিটার (বিভাগে নীচে দেখুন USER কে সংজ্ঞায়িত
ফাংশন) কিছু বিকল্পের জন্য (নীচে দেখুন) -- বিভাজক প্রয়োজন হয় না.

আইকমেক পরবর্তীতে বর্ণিত বিভিন্ন বিকল্প সমর্থন করে। দ্য -h বিকল্প অন্য সব overrules
বিকল্প, -a অপশন ছাড়া অন্য সব অপশন ওভাররুল করে -h. অবশিষ্ট কর্মের
বিকল্প (-খ, -গ, -ই, -আমি, -p এবং -t) শুধুমাত্র একটি নির্দিষ্ট করা যেতে পারে:

o -a
সম্পর্কে তথ্য দেখান আইকমেক, দ্বারা overruled -h;

o -b
বন্ধ: পরিবর্তে বিকল্প -e ব্যবহার করুন;

o -c
দ্য আইকমেক উৎস ফাইল কম্পাইল করা হয়, একটি .bim ফাইল তৈরি করে;

o -e
চালানো আইকমেক .bim ফাইল, হিসাবে দেওয়া আইকমেকএর প্রথম ফাইল আর্গুমেন্ট। যেকোন অতিরিক্ত
আর্গুমেন্ট .bim ফাইলে পাস করা হয় যেমন আছে, এবং -- নির্দিষ্ট করা উচিত নয়;

o -F
ফাইলের নাম এবং পতাকা এবং সেইসাথে দ্বারা সম্পাদিত সমস্ত কর্মের একটি ওভারভিউ
আইকমেক স্ট্যান্ডার্ড আউটপুট স্ট্রীমে দেখানো হয়;

o -h
ব্যবহার তথ্য এবং শেষ প্রদান আইকমেক;

o -i
প্রথম যুক্তি হল আইকমেক সোর্স ফাইল, ডিফল্ট বাইনারি ফাইল
প্রয়োজনে নির্মিত। যেকোনো অতিরিক্ত আর্গুমেন্ট .bim ফাইলে পাঠানো হয়
যেমন আছে, এবং -- নির্দিষ্ট করা উচিত নয়;

o -p
দ্য আইকমেক সোর্স ফাইলটি শুধুমাত্র প্রিপ্রসেস করা হয় এবং প্রিপ্রসেস করা ফাইলটি লেখা হয়
থেকে আইকমেকএর দ্বিতীয় ফাইল আর্গুমেন্ট (ডিফল্টরূপে `উৎস'.পিম);

o -q
উপেক্ষা করা হয়েছে, ভবিষ্যতে সরানো হবে আইকমেক সংস্করণ;

o -t
নিম্নলিখিত যুক্তি -t একটি অস্থায়ী .bim ফাইলের নাম, যা সরানো হয়
পরে আইকমেকএর কল কখন . অস্থায়ী .bim ফাইলের নাম হিসাবে উল্লেখ করা হয়েছে
তারপর ডিফল্ট অস্থায়ী ডিরেক্টরি, অনুসরণ করে আইকমেকএর প্রসেস-আইডি, এর পরে
.বিম ব্যবহৃত হয়.

অস্থায়ী .বিম ফাইলের নাম অনুসরণ করুন আইকমেক উৎস স্ক্রিপ্ট
নির্দিষ্ট করা আবশ্যক। যেকোন অতিরিক্ত আর্গুমেন্ট .bim ফাইলে পাস করা হয় যেমন আছে, এবং
-- নির্দিষ্ট করা উচিত নয়; সোর্স স্ক্রিপ্ট ফাইলের এক্সিকিউটেবল পতাকা সেট করার পরে
(chmod +x লিপি), এবং এটির মতো একটি প্রাথমিক লাইন প্রদান করে:

#!/usr/bin/icmake -t.

দ্য আইকমেক স্ক্রিপ্ট সরাসরি বলা যেতে পারে:

স্ক্রিপ্ট arg1 arg2

যে ক্ষেত্রে আইকমেক লিপি 'লিপি' এটি প্রাপ্ত করার সময় মৃত্যুদন্ড কার্যকর করা হয়
আর্গুমেন্ট লিপি arg1 arg2.

o -T
এই বিকল্পটি একটি ডিরেক্টরির নামের সাথে প্রদান করা আবশ্যক যা সংরক্ষণ করতে ব্যবহৃত হয়
অস্থায়ী ফাইল. যেমন, একটি কম্পাইল করার সময় আইকমেক স্ক্রিপ্ট, এর আউটপুট আইকমেক'গুলি
প্রিপ্রসেসর হল একটি অস্থায়ী ফাইল যা প্রস্থান করার সময় সরানো হয়। গতানুগতিক / tmp -র পরিবর্তে ব্যবহৃত হয়,
যদি না / tmp -র পরিবর্তে একটি লিখনযোগ্য ডিরেক্টরি নয়, এই ক্ষেত্রে বর্তমান ব্যবহারকারীর $ হোম
ডিরেক্টরি ব্যবহার করা হয়। অন্তর্নিহিত অস্থায়ী ফাইলের নাম সর্বদা প্রক্রিয়া আইডি দিয়ে শুরু হয়
বর্তমান আইকমেক প্রক্রিয়া।

o -v
প্রদর্শন আইকমেকএর সংস্করণ নম্বর এবং শেষ আইকমেক, দ্বারা overruled -h

আইকমুন:

bimfile: বাইনারি আইকমেক স্ক্রিপ্ট ফাইল।

প্রিপ্রসেসর নির্দেশনা


নিম্নলিখিত প্রিপ্রসেসর নির্দেশাবলী উপলব্ধ:

o মন্তব্য:
মান C মন্তব্য (সকলের মধ্যে /* এবং */) পাশাপাশি মন্তব্য-থেকে-এন্ড-অফ-লাইন (সমস্ত
লাইন বিষয়বস্তু নিম্নলিখিত //) উপেক্ষা করা হয়।

o শেল স্টার্টআপ: এর প্রথম লাইন আইকমেক-স্ক্রিপ্ট দিয়ে শুরু হতে পারে #!পথ, কোথায়
পথ এর পরম অবস্থান সংজ্ঞায়িত করে আইকমেক কার্যক্রম. স্ক্রিপ্ট তৈরি করে
এক্সিকিউটেবল, এটি স্পষ্টভাবে কল না করেই বলা যেতে পারে আইকমেক.

যেমন, যদি একটি (নির্বাহযোগ্য) icmakefile এর প্রথম লাইন 'icm' (এক্সটেনশন ছাড়াই)
ধারণ

#!/usr/bin/icmake -i

তারপর icm আদেশ হিসাবে জারি করা যেতে পারে, এইভাবে কার্যকর করা

/usr/bin/icmake -i icm...

অন্যথা,

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

ব্যবহার করা যেতে পারে, এর মৃত্যুদন্ডের ফলে

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

এই ক্ষেত্রে বাইনারি ফাইলটি প্রস্থান করার সময় সরানো হয়।

o # অন্তর্ভুক্ত "ফাইলের নাম"
ফাইল ফাইলের নাম নির্দেশের অবস্থানে অন্তর্ভুক্ত করা হয়

o # অন্তর্ভুক্ত
ফাইল ফাইলের নাম এর অবস্থানে অন্তর্ভুক্ত করা হয় # অন্তর্ভুক্ত নির্দেশ ফাইলের নাম
দ্বারা নির্দিষ্ট কোলন-বিচ্ছিন্ন ডিরেক্টরিগুলিতে অনুসন্ধান করা হয় IM পরিবেশ
পরিবর্তনশীল এর প্রথম ঘটনা ফাইলের নাম দ্বারা নির্দিষ্ট ডিরেক্টরিতে IM
পরিবেশ পরিবর্তনশীল ব্যবহার করা হয়।

o # define আইডেন্টিফায়ার [সংজ্ঞা]
পাঠ্য আইডেন্টিফায়ার দ্বারা প্রতিস্থাপিত হবে সংজ্ঞা. সংজ্ঞা থাকতে পারে
ইতিমধ্যে সংজ্ঞায়িত শনাক্তকারীর রেফারেন্স, ব্যবহার করে ${identifier} বিন্যাস যদি
${identifier} সংজ্ঞায়িত করা হয়নি (এখনও), পাঠ্য ${identifier} আক্ষরিক অর্থে রাখা হয়।
সর্বাধিক 100 এ অসীম পুনরাবৃত্তি প্রতিরোধ করতে ${identifier} প্রতিস্থাপন অনুমোদিত হয়।

একটি লাইনের শেষ অক্ষরটি a হলে পরবর্তী লাইনে সংজ্ঞা চলতে থাকে
ব্যাকস্ল্যাশ () (যা সংজ্ঞায় অন্তর্ভুক্ত নয়)। প্রিপ্রসেসর
ডবল-উদ্ধৃত স্ট্রিংগুলিকে সংযুক্ত করে, এবং ডবল উদ্ধৃত স্ট্রিং একাধিক স্প্যান নাও হতে পারে
লাইন সংজ্ঞায় একাধিক ফাঁকা (ডবল উদ্ধৃত স্ট্রিং এর বাইরে) হয়
একটি একক ফাঁকা জায়গায় চুক্তিবদ্ধ।

সংজ্ঞা নিম্নলিখিত #সংজ্ঞায়িত করুন শনাক্তকারী ঐচ্ছিক। যদি বাদ দেওয়া হয়, তাহলে
ম্যাক্রো সংজ্ঞায়িত করা হয়েছে, তাই এটি ব্যবহার করা যেতে পারে #if(n)def নির্দেশাবলী (নীচে দেখুন), কিন্তু তারা
কোন টেক্সট দ্বারা প্রতিস্থাপিত হয় না আইকমেক কোড বিবৃতি।

o #ifdef আইডেন্টিফায়ার
যদি আইডেন্টিফায়ার ম্যাক্রো কোডের পরবর্তী ব্লক সংজ্ঞায়িত করা হয়েছিল (একটি মিল না হওয়া পর্যন্ত # আরও
or #endif নির্দেশিকা পড়া হয়েছিল) বাইট-সংকলিত। অন্যথায়, কোড ব্লক হয়
উপেক্ষা করা

o #ifndef আইডেন্টিফায়ার
যদি আইডেন্টিফায়ার ম্যাক্রো ছিল না কোডের পরবর্তী ব্লক সংজ্ঞায়িত করা হয়েছে (একটি মিল না হওয়া পর্যন্ত
# আরও or #endif নির্দেশ সনাক্ত করা হয়েছে) বাইট-সংকলিত। অন্যথায়, ব্লক
কোড উপেক্ষা করা হয়।

o # আরও
সমাপ্ত করে a #ifdef এবং #ifndef নির্দেশ, সম্পর্কে গ্রহণযোগ্যতা সিদ্ধান্ত বিপরীত
নিম্নলিখিত কোড. কেবল মাত্র একটি # আরও নির্দেশের সাথে যুক্ত হতে পারে #if(n)def
নির্দেশনা।

o #endif
মিল থেকে শুরু করে প্রিপ্রসেসর ব্লক বন্ধ করে #ifdef, #ifndef or # আরও
নির্দেশ দ্য #endif ডিরেক্টরি এবং এর মিল #if(n)def নির্দেশ হতে হবে
একই ফাইলে উল্লেখ করা হয়েছে।

o #শেষ আইডেন্টিফায়ার
অপসারণ আইডেন্টিফায়ার সংজ্ঞায়িত চিহ্নের সেট থেকে। এটি প্রভাবিত করে না
যে কোনো পূর্বে সংজ্ঞায়িত চিহ্নের স্পেসিফিকেশন শনাক্তকারীর সংজ্ঞা
ব্যবহার করা হয়েছে. যদি আইডেন্টিফায়ার সংজ্ঞায়িত করা হয়নি একটি সতর্কতা জারি করা হয়.

তথ্য ধরনের


আইকমেক এই ধরনের তথ্য সমর্থন করে:

o হওয়া ASCII চরিত্র ধ্রুবক
ASCII অক্ষর ধ্রুবক একটি অক্ষর নিয়ে গঠিত, একক বা দ্বিগুণ দ্বারা বেষ্টিত
উদ্ধৃতি একক অক্ষর (যেমন, 'ক') চরিত্রটি নিজেই উপস্থাপন করে। স্ট্যান্ডার্ড
পালানোর ক্রম (যেমন, '\n') সমর্থিত এবং তাদের মান রূপান্তরিত প্রতিনিধিত্ব করে
মান (যেমন, '\n' ascii মান 10 (দশমিক) প্রতিনিধিত্ব করে। অ-মানক পালানো
ক্রম (যেমন, '\এক্স') এস্কেপ অক্ষর অনুসরণ করে ascii অক্ষরটি উপস্থাপন করে
(তাই '\এক্স' সমান 'এক্স') তিনটি অক্টাল ডিজিট সমন্বিত এস্কেপ সিকোয়েন্স প্রতিনিধিত্ব করে
অক্টাল মানের মডুলো 256 এর সাথে সম্পর্কিত ascii অক্ষর (যেমন, '\123').
একটি x এর পরে দুটি হেক্সাডেসিমেল সংখ্যা দ্বারা গঠিত এস্কেপ সিকোয়েন্সগুলি উপস্থাপন করে
হেক্সাডেসিমেল মানের সাথে সম্পর্কিত ascii অক্ষর (যেমন, '\xa4').

o কোন int
থেকে সীমাবদ্ধ অবিচ্ছেদ্য মান -0x8000 দ্বারা 0x7fff. কোন int ধ্রুবক হতে পারে
দশমিক সংখ্যা হিসাবে নির্দিষ্ট করা হয়েছে (অঙ্ক 1 থেকে 9 দিয়ে শুরু হচ্ছে), অক্টাল সংখ্যা
(0 দিয়ে শুরু, এক বা একাধিক অক্টাল সংখ্যার পরে) হেক্সাডেসিমেল সংখ্যা
(0x দিয়ে শুরু, এক বা একাধিক হেক্সাডেসিমেল সংখ্যা দ্বারা অনুসরণ করা) বা হিসাবে হওয়া ASCII
অক্ষর ধ্রুবক

o স্ট্রিং
টেক্সট ভেরিয়েবল। স্ট্রিং ধ্রুবক ডবল উদ্ধৃতি দ্বারা সীমাবদ্ধ করা হয়. একাধিক স্ট্রিং
ধ্রুবকগুলি একত্রিত হতে পারে, কিন্তু একটি একক স্ট্রিং ধ্রুবক একাধিক স্প্যান নাও হতে পারে
লাইন স্ট্রিং ধ্রুবক শুধুমাত্র সাদা স্থান দ্বারা পৃথক করা হয় (যেমন, ফাঁকা, নতুন লাইন,
মন্তব্য) সংযুক্ত এবং একটি একক স্ট্রিং ধ্রুবক প্রতিনিধিত্ব করে। একটি নির্দেশ করতে
একটি স্ট্রিং ধ্রুবক ব্যবহার করুন লাইনের শেষ \n পালানোর ক্রম।

ডবল কোট দ্বারা বেষ্টিত ASCII অক্ষর ধ্রুবকগুলিও ব্যবহার করা যেতে পারে
গাণিতিক রাশি যদি অপারেন্ডগুলির একটি হয় একটি কোন int. একক চরিত্র
স্ট্রিং ধ্রুবক অবশ্যই একটি ধ্রুবক হতে, এবং একটি হতে পারে না স্ট্রিং পরিবর্তনশীল।

একইভাবে, একক উদ্ধৃতি দ্বারা বেষ্টিত ASCII অক্ষর ধ্রুবক ব্যবহার করা যেতে পারে
এমন পরিস্থিতিতে যেখানে একটি স্ট্রিং অপারেন্ড প্রত্যাশিত।

o তালিকা
পৃথকভাবে অ্যাক্সেসযোগ্য একটি সিরিজ ধারণকারী একটি ডেটা কাঠামো স্ট্রিং মান কখন
একটি তালিকায় উপাদান রয়েছে, এর প্রথম উপাদানটি সূচক 0 দ্বারা নির্দেশিত হয়।

o অকার্যকর
ফাংশন সংজ্ঞা দিয়ে ব্যবহার করা হয় নির্দেশ করার জন্য যে ফাংশনটি একটি ফেরত দেয় না
মান।

ভেরিয়েবলগুলিকে বৈশ্বিক স্তরে সংজ্ঞায়িত করা যেতে পারে সেইসাথে ভিতরে যে কোনও স্থানীয় স্তরে
ফাংশন যখন ফাংশন ভিতরে সংজ্ঞায়িত করা হয়, মান C স্কোপিং এবং দৃশ্যমানতার নিয়ম
আবেদন উদাহরণস্বরূপ, স্থানীয় ভেরিয়েবলগুলি শুধুমাত্র তাদের নিজস্ব বা আরও গভীরভাবে নেস্টে ব্যবহার করা যেতে পারে
ব্লক, তাদের দৃশ্যমানতা একটি অভিন্নভাবে সংজ্ঞায়িত করে আরও গভীরভাবে নেস্টেড ব্লকগুলিতে মুখোশ করা হয়
আরো গভীরভাবে নেস্টেড ব্লকের ভিতরে নাম পরিবর্তনশীল। ভেরিয়েবল দৃঢ়ভাবে টাইপ করা হয়, এবং
টাইপ থাকতে পারে না অকার্যকর.

যখন তারা সংজ্ঞায়িত করা হয় তখন ভেরিয়েবল শুরু হতে পারে। সূচনা হয় অভিব্যক্তি, যে
প্রাক- বা ব্যবহারকারী-সংজ্ঞায়িত ফাংশন, ধ্রুবক মান এবং ভেরিয়েবলের মান ব্যবহার করতে পারে যা
সংজ্ঞার বিন্দুতে দৃশ্যমান।

পূর্বনির্ধারিত কনস্ট্যান্টস


নিম্নলিখিত ধ্রুবকগুলি দ্বারা পূর্বনির্ধারিত আইকমেক. সব ধ্রুবক কোন 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
────────────────────────────────────────────────── ────────────
ইউনিক্স ইউনিক্স, সাধারণত GNU এর gcc কম্পাইলারের সাথে
UNIX বিকল্পভাবে উপলব্ধ হতে পারে
linux x86 চলমান লিনাক্স (সাধারণত gcc সহ)
LINUX বিকল্পভাবে উপলব্ধ হতে পারে
M_SYSV, M_UNIX x86 চলমান SCO/Unix
_POSIX _SOURCE ইউনিক্স পসিক্স কমপ্লায়েন্ট কম্পাইলার সহ
__hpux HP-UX, নেটিভ HP কম্পাইলার সহ
────────────────────────────────────────────────── ────────────

অপারেটর


int-টাইপ অপারেন্ড(গুলি):

সব C অপারেটর উপলব্ধ (পয়েন্টার অপারেটর ছাড়া, যেমন আইকমেক সাপোর্ট করছেনা
নির্দেশক)। তারা তাদের মত কাজ C-প্রোগ্রামিং ভাষার প্রতিরূপ।

স্ট্রিং-টাইপ অপারেন্ড(গুলি):

জন্য স্ট্রিং টাইপ ভেরিয়েবল এবং/অথবা ধ্রুবক নিম্নলিখিত অপারেটর উপলব্ধ (a এবং b
চিত্রিত করা স্ট্রিং চলক বা ধ্রুবক):

o a + b: একটি নতুন ফেরত দেয় স্ট্রিং এর সংমিশ্রণ ধারণকারী মান স্ট্রিং মূল্যবোধ a
এবং b। মনে রাখবেন যে স্ট্রিং ধ্রুবকগুলি সরাসরি সংযুক্ত হতে পারে (ব্যবহার না করে +
অপারেটর), যেমন, নিম্নলিখিত দুটি লাইন উভয়ই স্ট্রিংকে সংজ্ঞায়িত করে "হ্যালো বিশ্ব ":

"ওহে বিশ্ব"
"হ্যালো" + "বিশ্ব"

o a += b: a একটি হতে হবে স্ট্রিং পরিবর্তনশীল, যা স্ট্রিং পরিবর্তনশীল বা মান b is
সংযুক্ত

o স্ট্রিং তুলনা: অপারেটর == != <= >= < > != এবং == প্রয়োগ করা যেতে পারে স্ট্রিং
মান বা ভেরিয়েবল, তুলনা সফল হলে 1 ফেরত দেয়, অন্যথায় 0।
তুলনা কেস সংবেদনশীলভাবে, এবং সংজ্ঞায়িত ক্রম বা অক্ষর অনুসরণ করে
মধ্যে হওয়া ASCII অক্ষর সেট.

o !a: বুলিয়ান ! (not) অপারেটর 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 []: সূচক অপারেটর একটি স্ট্রিং ভেরিয়েবল বা ধ্রুবক থেকে একটি অক্ষর পুনরুদ্ধার করে: এটি
একটি হিসাবে একটি স্ট্রিং প্রদান করে rvalue. অতএব, নিম্নলিখিত বিবৃতি ঠিক আছে কম্পাইল:

// ধরে নিন str1 এবং str2 হল স্ট্রিং
str1 = str2[3];

কিন্তু নিম্নলিখিত বিবৃতি কম্পাইল করা হবে না:

str2[3] = "a";

একটি খালি স্ট্রিং প্রদান করা হয় যদি একটি অবৈধ সূচক মান প্রদান করা হয়।

o 'ব্যাকটিক' অপারেটর (`স্ট্রিং cmd`)
একটি স্ট্রিং দুটি ব্যাকটিকের মধ্যে স্থাপন করা হয় পোপেন(3) ফাংশন। দ্য
স্ট্রিং আর্গুমেন্টে সংরক্ষিত কমান্ড দ্বারা gererated স্ট্যান্ডার্ড আউটপুট হয়
একটি তালিকা হিসাবে ফিরে. একটি খালি তালিকা নির্দেশ করে যে কমান্ডটি কার্যকর করা যায়নি।
একটি কমান্ড যা কার্যকর করা যেতে পারে কিন্তু কোনো আউটপুট তৈরি করেনি একটি তালিকা প্রদান করে
একটি খালি উপাদান রয়েছে। কমান্ডের স্ট্যান্ডার্ড ত্রুটি স্ট্রিম আউটপুট নয়
ব্যাকটিক অপারেটর দ্বারা সংগৃহীত। যাইহোক, স্ট্যান্ডার্ড শেল পুনর্নির্দেশ হতে পারে
স্ট্যান্ডার্ড এরর স্ট্রীমের আউটপুট সংগ্রহ করতে ব্যবহৃত হয়। উদাহরণ:

printf(`"ls"`); // উপাদানগুলি মুদ্রণ করে
// বর্তমান ডিরেক্টরি

পূর্বনির্ধারিত ফাংশন eval(স্ট্রিং cmd) ঠিক ব্যাকটিকের মতো আচরণ করে
অপারেটর: তারা সমার্থক শব্দ।

তালিকা-টাইপ করা অপারেন্ড(গুলি):

জন্য তালিকা টাইপ ভেরিয়েবল এবং/অথবা মান নিম্নলিখিত অপারেটর উপলব্ধ:

o a + b: একটি নতুন ফেরত দেয় তালিকা এর সংমিশ্রণ ধারণকারী মান তালিকা মূল্যবোধ a এবং
b. এই না একটি সেট অপারেশন: যদি একটি উপাদান উভয়ই উপস্থিত হয় a এবং ইন b, তারা করবে
ফলাফল তালিকায় দুবার উপস্থিত হয় (সেট-সংযোজন বিল্ট-ইন দ্বারা সরবরাহ করা হয়
ক্রিয়া তালিকা).

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 []: সূচক অপারেটর একটি তালিকা পরিবর্তনশীল থেকে একটি তালিকা উপাদান পুনরুদ্ধার করে: এটি একটি প্রদান করে
একটি হিসাবে স্ট্রিং rvalue. অতএব, নিম্নলিখিত বিবৃতি ঠিক আছে কম্পাইল:

// অনুমান lst একটি তালিকা, str একটি স্ট্রিং
str = lst[3];

কিন্তু নিম্নলিখিত বিবৃতি কম্পাইল করা হবে না:

lst[3] = str;

একটি খালি স্ট্রিং প্রদান করা হয় যদি একটি অবৈধ সূচক মান প্রদান করা হয়।

ঢালাই:

টাইপ-কাস্ট স্ট্যান্ডার্ড ব্যবহার করে সঞ্চালিত হতে পারে C কাস্ট করতে কাস্ট-অপারেটর:

o স্ট্রিং থেকে ints এবং তদ্বিপরীত ((int)"123", (স্ট্রিং)55)

o তালিকার স্ট্রিংস (তালিকা প্রথম = (তালিকা) "হ্যালো")

প্রবাহ নিয়ন্ত্রণ


আইকমেক নিম্নলিখিত উপসেট প্রস্তাব Cএর বিবৃতি। তারা হিসাবে ব্যবহার করা যেতে পারে C
প্রোগ্রাম ভাষা.

o অভিব্যক্তি ;
সরল অভিব্যক্তি বিবৃতি;

o যৌগিক বিবৃতি
যেকোনো ধরনের ভেরিয়েবল যেকোনো যৌগের ভিতরে যেকোনো জায়গায় সংজ্ঞায়িত এবং আরম্ভ করা যেতে পারে
বিবৃতি দ্য দৃষ্টিপাত একটি পরিবর্তনশীল এর সংজ্ঞা বিন্দু থেকে শুরু হয়.

o if (শর্ত) বিবৃতি
অবস্থার ভিতরে একটি পরিবর্তনশীল সংজ্ঞায়িত এবং আরম্ভ করা যেতে পারে। যেমন,

যদি (স্ট্রিং str = getText())
প্রক্রিয়া(str);

এই উদাহরণে, প্রক্রিয়া যদি বলা হয় না getText () একটি খালি স্ট্রিং ফেরত দেয়। দ্য
পরিবর্তনশীল Str এর আগে বা পরে বিদ্যমান নেই if বিবৃতি।

o if (শর্ত) বিবৃতি আর বিবৃতি
পূর্ববর্তী বিবৃতি হিসাবে, শর্ত ভিতরে একটি পরিবর্তনশীল সংজ্ঞায়িত করা যেতে পারে এবং
আরম্ভ

o উন্নত (এটা; অবস্থা বৃদ্ধি) বিবৃতি
ভেরিয়েবলগুলি (একটি একক প্রকারের) তে আরম্ভ করা যেতে পারে (এবং ঐচ্ছিকভাবে সংজ্ঞায়িত করা যেতে পারে)
এটা অধ্যায়. দ্য এটা, শর্ত এবং বৃদ্ধি বিভাগগুলি খালি থাকতে পারে। দ্য
খালি কন্ডিশন বিভাগকে 'সর্বদা' হিসেবে ব্যাখ্যা করা হয় সত্য'.

o যখন (শর্ত) বিবৃতি
অবস্থার ভিতরে একটি পরিবর্তনশীল সংজ্ঞায়িত এবং আরম্ভ করা যেতে পারে।
একটি পরিপূরক do ... যখন() বিবৃতি পাওয়া যায় না. উল্লেখ্য যে সংজ্ঞায়িত a
ভেরিয়েবল, একটি প্রারম্ভিক অভিব্যক্তি ব্যবহার করার মানে হল যে আরম্ভ করা
এক্সপ্রেসিং এর প্রতিটি পুনরাবৃত্তিতে কার্যকর করা হয় যখন বিবৃতি তাই নিম্নলিখিত
বিবৃতি কখনই শেষ হবে না এবং 10 মানগুলির একটি কখনও শেষ না হওয়া স্ট্রীম প্রদর্শন করবে:

যখন (int x = 10)
printf(x--, "\n");

o আসতে;, এবং প্রত্যাবর্তন অভিব্যক্তি
সমভূমি প্রত্যাবর্তন বিবৃতি ব্যবহার করা যেতে পারে অকার্যকর ফাংশন, এবং প্রত্যাবর্তন অভিব্যক্তি
বিবৃতি অন্যান্য ধরনের ফাংশন ব্যবহার করা হয়. কাজ প্রধান রিটার্ন টাইপ আছে
অকার্যকর এবং তাই মধ্যে প্রধান শুধুমাত্র সমতল প্রত্যাবর্তন বিবৃতি ব্যবহার করা যেতে পারে। ডিফল্টরূপে একটি আইকমেক
স্ক্রিপ্টের প্রস্থান মান 0 সমান। বিল্ট-ইন ফাংশন ব্যবহার করুন প্রস্থান (নীচে দেখুন) নির্দিষ্ট করতে
অন্য কোনো প্রস্থান মান।

Be পরামর্শ দেওয়া হয়েছে: অ-অকার্যকর ফাংশন মান ফেরত না আচরণ অনির্ধারিত.

o বিরতি
পাতার উন্নত এবং যখন বিবৃতি, বিবৃতি শর্ত overruling.

o অবিরত
a এর পরবর্তী পুনরাবৃত্তির সাথে চলতে থাকে উন্নত or যখন বিবৃতি।

o প্রস্থান (অভিব্যক্তি)
একটি মৃত্যুদন্ড শেষ হয় আইকমেক-লিপি. দ্য অভিব্যক্তি একটি মূল্যায়ন করা আবশ্যক কোন int
মান, যা স্ক্রিপ্টের প্রস্থান মান হয়ে যায়।

পূর্বনির্ধারিত ফাংশন


আইকমেক নিম্নলিখিত পূর্বনির্ধারিত ফাংশনগুলি অফার করে, যা যে কোনও জায়গায় ব্যবহার করা যেতে পারে আইকমেক
স্ক্রিপ্ট নিম্নলিখিত ওভারভিউ ফাংশন নামের দ্বারা বর্ণানুক্রমিকভাবে আদেশ করা হয়.

o অকার্যকর আরগহেড(স্ট্রিং h)
এর হেল্পার ফাংশন exec() (এ নীচেও দেখুন exec()): 'আর্গুমেন্ট হেড' সংজ্ঞায়িত করে,
সঙ্গে ব্যবহার করা exec(). ডিফল্টরূপে, 'আর্গুমেন্ট হেড' একটি খালি স্ট্রিং।

o অকার্যকর argtail (স্ট্রিং t)
এর হেল্পার ফাংশন exec() (এ নীচেও দেখুন exec()): 'আর্গুমেন্ট লেজ' সংজ্ঞায়িত করে,
সঙ্গে ব্যবহার করা exec(). ডিফল্টরূপে, 'আর্গুমেন্ট টেল' একটি খালি স্ট্রিং।

o কোন int ascii(স্ট্রিং s)
এর প্রথম অক্ষর প্রদান করে s একটি int হিসাবে; যেমন, ascii("A") রিটার্ন 65;

o স্ট্রিং ascii(int i)
রিটার্নস বা মুনাফা i একটি স্ট্রিং হিসাবে, যেমন, ASCII(২০১০) স্ট্রিং ফেরত দেয় "প্রতি";

o স্ট্রিং পরিবর্তন_বেস(স্ট্রিং ফাইল, স্ট্রিং নিউবেস)
এর মূল নাম পরিবর্তন করে ফাইল, পরিবর্তিত নাম ফেরত দেয়। যেমন,
change_base("/path/demo.im", "আউট") আয় "/path/out.im";

o স্ট্রিং change_ext(স্ট্রিং ফাইল, স্ট্রিং নতুন)
এর এক্সটেনশন পরিবর্তন করে ফাইল, পরিবর্তিত নাম ফেরত দেয়। যেমন,
rss_changeExt("source.cc", "ও") আয় "source.o";

o স্ট্রিং পরিবর্তন_পথ(স্ট্রিং ফাইল, স্ট্রিং নতুন পথ)
এর পাথ স্পেসিফিকেশন পরিবর্তন করে ফাইল, পরিবর্তিত নাম ফেরত দেয়। যেমন,
পরিবর্তন_পথ("tmp/বাইনারি", ", / Usr / বিন") আয় "/usr/bin/binary"। নোট করুন যে
/- প্রয়োজন হলে বিভাজক ঢোকানো হয়।

o স্ট্রিং chdir(স্ট্রিং newdir)
স্ক্রিপ্টের ওয়ার্কিং ডাইরেক্টরি পরিবর্তন করে, আগের ডিরটিকে পরম হিসাবে ফেরত দেয়
পথ।

ব্যবহার chdir("।") বর্তমান কাজের ডিরেক্টরি পেতে, chdir("") অভ্যস্ত হতে পারে
স্টার্টআপ ওয়ার্কিং ডিরেক্টরি প্রাপ্ত করুন (এই কার্যকারিতাটি রিলিজে ভাঙ্গা হয়েছিল
7.00 এর আগে, কিন্তু এখন চালু আছে)। ফাংশনটি বন্ধ করে দেয়
আইকমেক- স্ক্রিপ্ট যদি নির্দিষ্ট করা হয় newdir এটির অস্তিত্ব নেই.

o স্ট্রিং chdir(int পরীক্ষা করা, স্ট্রিং newdir)
আগের ফাংশন হিসাবে একই কার্যকারিতা, কিন্তু নির্দিষ্ট করে পরীক্ষণ as
P_NOCHECK. ফাংশনটি স্ক্রিপ্টটি বন্ধ করবে না। বরং, এটি ফেরত দেবে
স্ক্রিপ্টের বর্তমান কাজের ডিরেক্টরি।

o cmdhead(স্ট্রিং h)
এর হেল্পার ফাংশন exec() (এ নীচেও দেখুন exec()): একটি `কমান্ড হেড' সংজ্ঞায়িত করে, থেকে
সঙ্গে ব্যবহার করা exec(). ডিফল্টরূপে, 'কমান্ড হেড' একটি খালি স্ট্রিং।

o cmdtail(স্ট্রিং t)
এর হেল্পার ফাংশন exec() (এ নীচেও দেখুন exec()): একটি `কমান্ড লেজ' সংজ্ঞায়িত করে, থেকে
সঙ্গে ব্যবহার করা exec(). ডিফল্টরূপে, 'কমান্ড টেইল' একটি খালি স্ট্রিং।

o প্রতিধ্বনি (int পছন্দ)
বলা প্রোগ্রামগুলির প্রতিধ্বনি নিয়ন্ত্রণ করে (এবং তাদের আর্গুমেন্ট), নির্দিষ্ট করুন বন্ধ যদি প্রতিধ্বনিত হয়
অনুরোধ করা হয় না। গতানুগতিক প্রতিধ্বনি (চালু) ব্যবহৃত হয়.

o স্ট্রিং উপাদান (int সূচক, তালিকা (অথবা স্ট্রিং) var)
সূচক অপারেটরের সাথে অভিন্ন কাজ করে: সূচকটি পড়ুন ([]) মধ্যে অপারেটর
অধ্যায় অপারেটর.

o তালিকা eval(স্ট্রিং str)
এই ফাংশনটি ব্যাকটিক অপারেটরের সাথে একইভাবে কাজ করে। সঙ্গে দেওয়া উদাহরণ
ব্যাকটিক অপারেটরকেও এভাবে লেখা হতে পারে:

printf(eval("ls")); // কারেন্টের উপাদানগুলি প্রিন্ট করে
// ডিরেক্টরি

o exec(স্ট্রিং cmd কমান্ড, ...)
আর্গুমেন্ট সহ কমান্ড নির্বাহ করে। প্রতিটি যুক্তি দ্বারা উপসর্গ করা হবে আরগহেড()'গুলি
যুক্তি এবং দ্বারা postfixed argtail()এর যুক্তি। নোট করুন যে কোন ফাঁকা ঢোকানো হয় না
মধ্যে আরগহেড()এর বিষয়বস্তু, যুক্তি সঠিক, এবং argtail()এর যুক্তি। সব
এইভাবে পরিবর্তিত আর্গুমেন্টগুলি একত্রিত করা হয়েছে, এইবার একক ফাঁকা দিয়ে আলাদা করা হয়েছে, এবং৷
তারপর cmdhead()এর বিষয়বস্তু কমান্ড এবং প্রথম আর্গুমেন্টের মধ্যে সন্নিবেশ করা হয়
(উভয় পাশে একক খালি দ্বারা সীমাবদ্ধ) এবং cmdtail()এর বিষয়বস্তু সংযুক্ত করা হয়
আর্গুমেন্টে (আবার, একটি একক ফাঁকা দ্বারা পৃথক করা)। পাথ সনাক্ত করার জন্য অনুসন্ধান করা হয়
cmd কমান্ড. 0 ফেরত দেওয়া হয়।

o exec(int চেকসিএমডি, স্ট্রিং cmd কমান্ড, ...)
আগের ফাংশন হিসাবে একই কার্যকারিতা, কিন্তু নির্দিষ্ট করে পরীক্ষণ as
চেক না ফাংশনটি স্ক্রিপ্টটি বন্ধ করবে না। বরং, এটি ফেরত দেবে
কমান্ডের প্রস্থান অবস্থা বলা হয়, বা 0x7f00 যদি কমান্ড পাওয়া না যায়।

o execute(string). cmd কমান্ড, স্ট্রিং cmdhd, স্ট্রিং arghd, ..., স্ট্রিং argtl, স্ট্রিং cmdtl)
একই রকম exec(), কিন্তু কমান্ড head/tail এবং argument head/tail অবশ্যই নির্দিষ্ট করতে হবে।

আসলে নির্বাহিত কমান্ড দিয়ে শুরু হয় cmd কমান্ড, দ্বারা অনুসরণ cmdhd. পরবর্তী একটি সিরিজ
আর্গুমেন্ট অনুসরণ করে, প্রতিটি দ্বারা আবদ্ধ arghd এবং argtl. কমান্ড এর সাথে শেষ হয়
cmdtl. 0 ফেরত দেওয়া হয়

o চালান (int পরীক্ষা করা, স্ট্রিং cmd কমান্ড, স্ট্রিং cmdhd, স্ট্রিং arghd, ..., স্ট্রিং argtl,
স্ট্রিং cmdtl)
আগের ফাংশন হিসাবে একই কার্যকারিতা, কিন্তু নির্দিষ্ট করে পরীক্ষণ as
চেক না ফাংশনটি স্ক্রিপ্টটি বন্ধ করবে না। বরং, এটি ফেরত দেবে
কমান্ডের প্রস্থান অবস্থা বলা হয়, বা 0x7f00 যদি কমান্ড পাওয়া না যায়।

o কোন int বিদ্যমান (স্ট্রিং ফাইল)
যদি একটি অ-শূন্য মান প্রদান করে ফাইল বিদ্যমান, অন্যথায় 0 ফেরত দেওয়া হয়।

o তালিকা fgets(স্ট্রিং ফাইল, তালিকা অফসেট)
লক্ষ্য করুন: in আইকমেক সংস্করণ 8.00.00 থেকে এই ফাংশনের প্রোটোটাইপ পরিবর্তন করা হয়েছিল
তালিকা fgets(স্ট্রিং ফাইল, কোন int অফসেট) থেকে তালিকা fgets(স্ট্রিং ফাইল, তালিকা অফসেট).

অফসেটে পাওয়া পরবর্তী লাইনটি অন্তর্ভুক্ত রয়েছে অফসেট থেকে পড়া হয় ফাইল. একটি পাস
খালি তালিকা থেকে fgets পড়তে ফাইল এর শুরু থেকে

এটি পঠিত লাইনের বিষয়বস্তুর প্রথম উপাদান হিসেবে একটি তালিকা প্রদান করে
(ছাড়া \n লাইন টার্মিনেটর), এর দ্বিতীয় উপাদান হিসাবে লাইনের টার্মিনেটর `\n'
(যদি সম্মুখীন হয়), এবং এর তৃতীয় উপাদান হিসাবে স্ট্রিং OK যদি একটি লাইন সফলভাবে হয়
পড়ুন, ব্যর্থ ফাইল থেকে পড়া ব্যর্থ হলে। EOF এ পড়ার সময় একটি খালি তালিকা থাকে
ফিরে এসেছে প্রত্যাবর্তিত তালিকায় অতিরিক্ত উপাদান থাকতে পারে, যা অভ্যন্তরীণভাবে রয়েছে
দ্বারা ব্যবহৃত fgets পরের লাইন পড়ার সময়।

একাধিক লাইন পড়তে, একটি খালি তালিকা পাস করে শুরু করুন পায় এর দ্বিতীয় যুক্তি।
পরবর্তী লাইনগুলি পড়তে, পূর্বে ফিরে আসা তালিকাটি পাস করুন fgets এর দ্বিতীয়
যুক্তি.

একটি সম্পূর্ণ ফাইল কীভাবে পড়তে হয় তা এখানে একটি উদাহরণ রয়েছে:

তালিকা ret;
যখন (1)
{
ret = fgets("ফাইলের নাম", ret);
যদি (!ret)
বিরতি;
প্রক্রিয়া(ret[0], ret[1]);
}

o কোন int fprintf(স্ট্রিং ফাইলের নাম, ...)
ফাইলে সমস্ত (কমা বিভক্ত) আর্গুমেন্ট যুক্ত করে ফাইলের নাম. এর সংখ্যা প্রদান করে
মুদ্রিত আর্গুমেন্ট।

o কোন int fprintf(স্ট্রিং ফাইলের নাম, স্ট্রিং বিন্যাস, ...)
ফাইলে সমস্ত (কমা বিভক্ত) আর্গুমেন্ট যুক্ত করে ফাইলের নাম. এর সংখ্যা প্রদান করে
মুদ্রিত আর্গুমেন্ট।

If বিন্যাস স্থানধারক রয়েছে %1 .. %n আউটপুট ফরম্যাট করা হয়েছে (এছাড়াও দেখুন
স্ট্রফরম্যাট) মনে রাখবেন যে এই ক্ষেত্রে যুক্তি গণনা (এছাড়াও) এর বাইরে শুরু হয়
বিন্যাস স্ট্রিং: প্রথম আর্গুমেন্ট নিম্নলিখিত বিন্যাস হিসাবে উল্লেখ করা হয় %1.

o স্ট্রিং get_base(স্ট্রিং ফাইল)
এর ভিত্তি নাম প্রদান করে ফাইল. বেস নাম হল এর পাথ প্রিফিক্স ছাড়া ফাইল
এবং এর এক্সটেনশন ছাড়াই। এক্সটেনশন হল ফাইনাল থেকে শুরু হওয়া সমস্ত তথ্য
ফাইলের নামের মধ্যে ডট। যদি কোন চূড়ান্ত বিন্দু পাওয়া না যায়, ফাইলের নাম হল বেস নাম।
যেমন, এর মূল নাম AB সমান a, এর মূল নাম abc সমান AB, ভিত্তি
নাম a/b/c সমান c.

o স্ট্রিং পেতে()
একটি স্ট্রিং হিসাবে পরবর্তী চাপা কী ফেরত দেয় ('এন্টার' টিপে প্রয়োজন নেই)।

o স্ট্রিং get_dext(স্ট্রিং ফাইল)
এর এক্সটেনশন প্রদান করে ফাইল, বিভাজক বিন্দু সহ। এক্সটেনশন সব
তথ্য ফাইলের নামের চূড়ান্ত বিন্দু থেকে শুরু।

কোনো চূড়ান্ত বিন্দু পাওয়া না গেলে, একটি খালি স্ট্রিং ফেরত দেওয়া হয়।

o তালিকা getenv(স্ট্রিং envvar)
পরিবেশ পরিবর্তনশীলের মান প্রদান করে envvar দুটি উপাদান ধারণকারী একটি তালিকায়:

প্রথম উপাদানটি নির্দেশ করে যে পরিবেশ পরিবর্তনশীলটি সংজ্ঞায়িত করা হয়েছিল কিনা (মান
"1") বা না (মান "0");
দ্বিতীয় উপাদান পরিবেশ পরিবর্তনশীল মান নির্দেশ করে.

পরিবেশের ভেরিয়েবলগুলি ফর্মের পরিবর্তনশীল = মান, এবং যদি তালিকার সংজ্ঞায়িত করা হয়
দ্বিতীয় উপাদান রয়েছে মূল্য. মান খালি হলে, পরিবর্তনশীল সংজ্ঞায়িত করা হয়, কিন্তু
এর সাথে যুক্ত কোন লেখা নেই।

o স্ট্রিং get_ext(স্ট্রিং ফাইল)
এর এক্সটেনশন প্রদান করে ফাইল, পৃথককারী বিন্দু ছাড়া। এক্সটেনশন সব
ফাইলের নামের চূড়ান্ত বিন্দু থেকে শুরু হওয়া তথ্য।

কোনো চূড়ান্ত বিন্দু পাওয়া না গেলে, একটি খালি স্ট্রিং ফেরত দেওয়া হয়।

o কোন int getpid()
icmake বাইট কোড ইন্টারপ্রেটারের প্রসেস-আইডি প্রদান করে icm-exec.

o স্ট্রিং পায় ()
কীবোর্ড থেকে পড়া পরবর্তী লাইনটি a হিসাবে ফেরত দেয় স্ট্রিং. লাইনে প্রবেশ করেছে
কীবোর্ড অবশ্যই একটি 'এন্টার' কী দ্বারা সমাপ্ত করা উচিত, যা ফেরত পাঠানোতে সংরক্ষণ করা হয় না
স্ট্রিং।

o স্ট্রিং get_path(স্ট্রিং ফাইল)
এর পাথ-উপসর্গ প্রদান করে ফাইল. পাথ উপসর্গ হল (এবং
সহ) চূড়ান্ত ডিরেক্টরি বিভাজক (যা, অপারেটিং উপর নির্ভর করে
সিস্টেম, একটি ফরোয়ার্ড- বা ব্যাকস্ল্যাশ)।

কোন পথ পাওয়া না গেলে, একটি খালি স্ট্রিং ফেরত দেওয়া হয়।

o কোন int listfind(তালিকা প্রথমত, স্ট্রিং str)
মধ্যে প্রথম সূচক প্রদান করে প্রথম যেখানে স্ট্রিং Str পাওয়া যায়, বা -1 যদি প্রথম না
ধারণ করা Str.

o কোন int listlen (তালিকা l)
উপাদানের সংখ্যা প্রদান করে তালিকা.

o তালিকা listunion(তালিকা এলএইচএস, তালিকা আরএইচএস)
উপাদানগুলির মিলন সম্বলিত একটি তালিকা প্রদান করে৷ এলএইচএস এবং rhs.

o তালিকা listunion(তালিকা প্রথমত, স্ট্রিং str)
উপাদানগুলির মিলন সম্বলিত একটি তালিকা প্রদান করে৷ প্রথম এবং Str.

o তালিকা makelist(স্ট্রিং মুখোশ)
মিলে যাওয়া সমস্ত ফাইলের একটি তালিকা প্রদান করে মাস্ক. যেমন, makelist("*.c") একটি তালিকা প্রদান করে
শেষ হওয়া সমস্ত ফাইল রয়েছে .c.

o তালিকা মেকলিস্ট (টাইপ, স্ট্রিং মুখোশ)
পূর্ববর্তী ফাংশন হিসাবে একই, কিন্তু ডিরেক্টরি উপাদানের ধরন হতে পারে
তার প্রথম যুক্তি হিসাবে নির্দিষ্ট করা হয়েছে:

প্রতীক অর্থ
IS_ALL সব ডিরেক্টরি এন্ট্রি প্রাপ্ত
IS_DIR সহ সমস্ত ডিরেক্টরি প্রাপ্ত করে। এবং ..
IS_FILE ফাইলগুলির একটি তালিকা পান
IS_SUBDIR সমস্ত সাবডিরেক্টরি প্রাপ্ত করে

উল্লেখ্য যে প্যাটার্ন * ইউনিক্স-টাইপ অপারেটিং এর অধীনে লুকানো এন্ট্রির সাথে মেলে না
সিস্টেম ব্যবহার করুন .* যে জন্য.

o তালিকা makelist(স্ট্রিং মাস্ক, নতুন, স্ট্রিং তুলনা ফাইল)
একটি প্রদত্ত থেকে নতুন সব ফাইলের মিল মাস্কের তালিকা প্রদান করে
তুলনা করা অপারেটর ছোট পরিবর্তে ব্যবহার করা যেতে পারে নতুন। মনে রাখবেন যে নতুন এবং
ছোট অপারেটর, স্ট্রিং নয়।

o তালিকা makelist([int = IS_FILE,] স্ট্রিং মাস্ক, নতুন, স্ট্রিং তুলনা ফাইল)
আগের ফাংশন হিসাবে একই, কিন্তু আদর্শ হিসাবে নির্দিষ্ট করা যেতে পারে তালিকা মেকলিস্ট (টাইপ,
স্ট্রিং মুখোশ).

o makelist(স্ট্রিং মাস্ক, বয়স্ক, স্ট্রিং তুলনা ফাইল)
উপরে দেখুন; তুলনা ফাইলের চেয়ে পুরানো ফাইলগুলির একটি তালিকা প্রদান করে।

o মেকলিস্ট (টাইপ, স্ট্রিং মাস্ক, বয়স্ক, স্ট্রিং তুলনা ফাইল)
আগের ফাংশন হিসাবে একই, কিন্তু আদর্শ হিসাবে নির্দিষ্ট করা যেতে পারে তালিকা মেকলিস্ট (টাইপ,
স্ট্রিং মুখোশ).

o কোন int printf(...)
স্ক্রীনে (অর্থাৎ, স্ট্যান্ডার্ড আউটপুট স্ট্রীম) সমস্ত (কমা আলাদা) আর্গুমেন্ট দেখায়।
মুদ্রিত আর্গুমেন্টের সংখ্যা প্রদান করে।

o কোন int printf(স্ট্রিং বিন্যাস, ...)
স্ক্রীনে (অর্থাৎ, স্ট্যান্ডার্ড আউটপুট স্ট্রীম) সমস্ত (কমা আলাদা) আর্গুমেন্ট দেখায়।
মুদ্রিত আর্গুমেন্টের সংখ্যা প্রদান করে ( বিন্যাস স্ট্রিং একটি যুক্তি হিসাবে গণনা করে)।

If বিন্যাস স্থানধারক রয়েছে %1 .. %n আউটপুট ফরম্যাট করা হয়েছে (এছাড়াও দেখুন
স্ট্রফরম্যাট).

o কোন int putenv(স্ট্রিং envvar)
যোগ করে envvar বর্তমানের কাছে (আইকমেক) পরিবেশ বিন্যাস ব্যবহার করুন: "VAR = মান"।
0 ফেরত দেয়।

o স্ট্রিং আকার পরিবর্তন করুন (স্ট্রিং str, কোন int নতুন দৈর্ঘ্য) স্ট্রিং এর একটি অনুলিপি প্রদান করে Str, এর আকার পরিবর্তন করা হয়েছে
নতুন দৈর্ঘ্য চরিত্র. যদি নতুন দৈর্ঘ্য ঋণাত্মক হলে একটি খালি স্ট্রিং ফেরত দেওয়া হয়,
if নতুন দৈর্ঘ্য অতিক্রম করে str এর দৈর্ঘ্য তারপর নতুন যোগ অক্ষর আরম্ভ করা হয়
ফাঁকা জায়গায়।

o কোন int sizeof(তালিকা l)
অপ্রচলিত: ব্যবহার লিস্টলেন.

o কোন int sizeoflist(তালিকা l)
অপ্রচলিত: ব্যবহার লিস্টলেন.

o তালিকা stat(স্ট্রিং প্রবেশ)
রিটার্নস বা মুনাফা রাষ্ট্র(2) ডিরেক্টরি এন্ট্রি তথ্য প্রবেশ একটি তালিকা হিসাবে। ফেরত দেওয়া তালিকা
দুটি উপাদান আছে: উপাদান 0 হল গুণ মূল্য, উপাদান 1 এর আকার রয়েছে
ফাইল.

বৈশিষ্ট্যগুলি বিট-পতাকা হিসাবে ফেরত দেওয়া হয়, নিম্নলিখিত পূর্বনির্ধারিত থেকে তৈরি
ধ্রুবক:

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_IWRITE S_IEXEC

দেখ রাষ্ট্র(2) এই ধ্রুবকগুলির অর্থের জন্য ম্যানুয়াল পৃষ্ঠা।

o তালিকা stat(পরীক্ষা করা, স্ট্রিং প্রবেশ)
আগের ফাংশন হিসাবে একই, কিন্তু নির্দিষ্ট করে পরীক্ষণ as P_NOCHECK কাজ
স্ক্রিপ্ট বন্ধ করবে না। বরং ফিরে আসে রাষ্ট্র(2) এর রিটার্ন মান।

o কোন int strchr(স্ট্রিং str, স্ট্রিং অক্ষর)
মধ্যে প্রথম সূচক প্রদান করে Str যেখানে কোন চরিত্র ট্যাঙ্ক পাওয়া যায়, বা -1
if Str এর মধ্যে কোনো অক্ষর নেই ট্যাঙ্ক.

o কোন int strlen(স্ট্রিং str)
এর মধ্যে অক্ষরের সংখ্যা প্রদান করে Str (চূড়ান্ত 0 গণনা করা হয় না)।

o কোন int strfind(স্ট্রিং খড়ের গাদা, স্ট্রিং সুই)
ইনডেক্স প্রদান করে খড়ের গাদা কোথায় সুই পাওয়া যায়, বা -1 যদি সুই ধারণ করা হয় না
in খড়ের গাদা.
এই ক্রিয়া ছিল নামক strstr() in সংস্করণ আগে 7.00.

o কোন int strformat(স্ট্রিং বিন্যাস,...)
আর্গুমেন্ট এড্রেস করতে প্লেসহোল্ডার %1 .. %2 ব্যবহার করে একটি ফরম্যাট করা স্ট্রিং ফেরত দেয়
নিম্নলিখিত বিন্যাস.
উদাহরণ:

অকার্যকর প্রধান ()
{
int i = 10;
int j = 20;
স্ট্রিং s1;
স্ট্রিং s2;
// প্রথাগত পদ্ধতি:
s1 = (স্ট্রিং)i + "" + (স্ট্রিং)j + "" + (স্ট্রিং)i;
// স্ট্রফরম্যাট ব্যবহার করে:
s2 = strformat("%1 %2 %1", i, j);
printf("s1 = %1, s2 = %2\n", s1, s2);
}

o স্ট্রিং strlwr(স্ট্রিং s)
এর একটি ছোট হাতের ডুপ্লিকেট প্রদান করে s.

o তালিকা strtok(স্ট্রিং str, স্ট্রিং বিভাজক)
এর সমস্ত সাবস্ট্রিং ধারণকারী একটি তালিকা প্রদান করে Str এক বা একাধিক দ্বারা বিভক্ত
(পরপর) অক্ষর বিভাজক. যেমন, strtok("হ্যালো icmake's+world", " +")
তিনটি স্ট্রিং ধারণকারী তালিকা প্রদান করে "হ্যালো", "icmake এর", এবং "বিশ্ব".

o স্ট্রিং strupr(স্ট্রিং s)
এর একটি বড় হাতের ডুপ্লিকেট প্রদান করে s.

o স্ট্রিং substr(স্ট্রিং পাঠ্য, কোন int অফসেট, কোন int গণনা)
এর একটি সাবস্ট্রিং প্রদান করে পাঠ, শুরুতেই অফসেট, এর মধ্যে রয়েছে গণনা চরিত্র. যদি
অফসেট স্ট্রিং এর আকার অতিক্রম (বা সমান) বা যদি গণনা <= 0, তারপর একটি খালি স্ট্রিং
ফেরত দেওয়া হয়। যদি অফসেট 0 এর কম হলে 0 ব্যবহার করা হয়।

o কোন int সিস্টেম(স্ট্রিং কমান্ড)
executes হুকুম. রিটার্ন মান কার্যকর করা কমান্ডের প্রস্থান মান নির্দেশ করে। দ্য
স্ট্রিং হুকুম পুনঃনির্দেশ এবং/অথবা পাইপিং অক্ষর থাকতে পারে।

o কোন int সিস্টেম (int পরীক্ষা করা, স্ট্রিং কমান্ড)
আগের ফাংশন হিসাবে একই কার্যকারিতা, কিন্তু নির্দিষ্ট করে পরীক্ষণ as
চেক না ফাংশনটি স্ক্রিপ্টটি বন্ধ করবে না। বরং, এটি ফেরত দেবে
কমান্ডের প্রস্থান অবস্থা বলা হয়, বা 0x7f00 যদি কমান্ড পাওয়া না যায়।

o স্ট্রিং ছাঁটা (স্ট্রিং s)
এর একটি কপি ফেরত দেয় s নেতৃস্থানীয় এবং পিছনে সাদা স্থান ছাড়া.

o স্ট্রিং trimleft(স্ট্রিং str)
এর একটি কপি ফেরত দেয় s নেতৃস্থানীয় সাদা স্পেস ছাড়া.

o স্ট্রিং ছাঁটা (স্ট্রিং s)
এর একটি কপি ফেরত দেয় s সাদা স্পেস ছাড়াই।

USER কে সংজ্ঞায়িত ফাংশন


অকার্যকর প্রধান

আইকমেক স্ক্রিপ্ট একটি ব্যবহারকারী-সংজ্ঞায়িত ফাংশন সঙ্গে প্রদান করা আবশ্যক প্রধান। কাজ প্রধান হয়েছে
তিনটি ঐচ্ছিক পরামিতি, যা শেষ একটি থেকে বাদ দেওয়া যেতে পারে (envp) প্রথম থেকে
(argc), যেমন C. এর সম্পূর্ণ প্রোটোটাইপ হল (দ্রষ্টব্য: অকার্যকর রিটার্ন টাইপ):

অকার্যকর প্রধান (int argc, তালিকা argv, তালিকা envp)

In প্রধান (),

o argc উপাদান সংখ্যা প্রতিনিধিত্ব করে argv;

o argv .bim-এর নামের সমান উপাদান 0 সহ আর্গুমেন্ট রয়েছে
ফাইল;

o envp 'পরিবেশ' ভেরিয়েবল রয়েছে। কাজ লিস্টলেন ব্যবহার করা যেতে পারে
এর উপাদানের সংখ্যা নির্ধারণ করুন। উপাদান envp ফর্ম আছে
পরিবর্তনশীল = মান. বিকল্পভাবে, ফাংশন getenv একটি পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে
অবিলম্বে নির্দিষ্ট পরিবেশ পরিবর্তনশীল. উদাহরণ:

অকার্যকর প্রধান (int argc, তালিকা argv)
{
কম্পাইল করতে তালিকা;
int idx;

যদি (argc == 1)
ব্যবহার (উপাদান (0, আরজিভি));

যদি (toCompile = পরিবর্তিত("*.cc"))
{
জন্য (idx = length(toCompile); idx--; )
কম্পাইল(উপাদান(আইডিএক্স, টু কম্পাইল));

যদি (getenv("dryrun")[0] == "0")
লিঙ্ক করা(উপাদান(2, আরগভি));
}
}

তাদের সংজ্ঞা অনুসারে সমস্ত গ্লোবাল ভেরিয়েবল শুরু করা প্রধান দ্বারা বলা হয়
আইকমেকঅতিরিক্ত কাজ সঞ্চালনের জন্য এর রান-টাইম সাপোর্ট সিস্টেম।

উপরন্তু সংজ্ঞায়িত ব্যবহারকারী ক্রিয়াকলাপ

অতিরিক্ত ফাংশন সংজ্ঞায়িত করা যেতে পারে. একবার সংজ্ঞায়িত, এই ফাংশন বলা যেতে পারে. ফরোয়ার্ড
ভেরিয়েবল বা ফাংশনের রেফারেন্সিং সমর্থিত নয়, কিন্তু বারবার কল করা
ফাংশন হয়। ফাংশন ঘোষণা সমর্থিত না হিসাবে পরোক্ষ পুনরাবৃত্তি হয় না
হয় সমর্থিত।

ব্যবহারকারী-সংজ্ঞায়িত ফাংশন নিম্নলিখিত উপাদান থাকতে হবে:

o ফাংশনের রিটার্ন টাইপ, যার একটি হতে হবে অকার্যকর int, স্ট্রিং or তালিকা। সেখানে
কোনো ডিফল্ট প্রকার নয়।

o ফাংশনের নাম, যেমন, সংকলন.

o একটি পরামিতি তালিকা, শূন্য বা অধিক কমা দ্বারা পৃথক পরামিতি সংজ্ঞায়িত করে। পরামিতি
নিজেদের একটি টাইপ নাম নিয়ে গঠিত (int, স্ট্রিং, বা তালিকা) দ্বারা অনুসরণ
প্যারামিটারের শনাক্তকারী। যেমন, (স্ট্রিং আউটফাইল, স্ট্রিং উৎস).

o ক শরীর এক জোড়া কোঁকড়া ধনুর্বন্ধনী দ্বারা বেষ্টিত ({ এবং }).

ফাংশন বডিতে (ঐচ্ছিকভাবে আরম্ভ করা) পরিবর্তনশীল সংজ্ঞা থাকতে পারে। পরিবর্তনশীল
সংজ্ঞা একটি টাইপ নাম দিয়ে শুরু হয়, তারপরে এক বা একাধিক কমা দ্বারা পৃথক করা হয় (ঐচ্ছিকভাবে
ইনিশিয়ালাইজড) পরিবর্তনশীল শনাক্তকারী। একটি ভেরিয়েবল স্পষ্টভাবে আরম্ভ করা না হলে এটি হয়
ডিফল্টরূপে আরম্ভ করা হয়েছে। ডিফল্টরূপে একটি কোন int ভেরিয়েবলকে 0, a-তে আরম্ভ করা হয় স্ট্রিং is
একটি খালি স্ট্রিং শুরু করা হয়েছে ("") এবং ক তালিকা শূন্য উপাদানের একটি তালিকায় শুরু করা হয়।

পরিবর্তনশীল সংজ্ঞা ছাড়াও, বডিতে শূন্য বা তার বেশি বিবৃতি থাকতে পারে (cf.
অধ্যায় প্রবাহ নিয়ন্ত্রণ) মনে রাখবেন যে ভেরিয়েবলগুলি সংজ্ঞায়িত করা যেতে পারে (এবং ঐচ্ছিকভাবে আরম্ভ করা হয়েছে)
যে কোন জায়গায় ফাংশন ভিতরে, এবং এছাড়াও যদি, উন্নত এবং যখন বিবৃতি।

এর আচরণ আইকমেক-স্ক্রিপ্ট অ-অকার্যকর ফাংশন ব্যবহার করে যা মান ফেরত দেয় না
সংজ্ঞায়িত

onworks.net পরিষেবা ব্যবহার করে অনলাইনে icmun ব্যবহার করুন



সর্বশেষ লিনাক্স এবং উইন্ডোজ অনলাইন প্রোগ্রাম