ພາສາອັງກິດພາສາຝຣັ່ງແອສປາໂຍນ

Ad


OnWorks favicon

icmake - ອອນລາຍໃນຄລາວ

ແລ່ນ icmake ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ icmake ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນສະຖານີເຮັດວຽກອອນໄລນ໌ຟຣີຫຼາຍອັນຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


icmake - ການ​ບໍາ​ລຸງ​ຮັກ​ສາ​ໂຄງ​ການ (ເຮັດໃຫ້) ການ​ນໍາ​ໃຊ້ a C- ຄື​ໄວ​ຍະ​ກອນ​

ສະຫຼຸບສັງລວມ


icmake [ທາງເລືອກ] ແຫຼ່ງ[.im] [dest[.bim]] [-- [args]]

icmun bimfile

ລາຍລະອຽດ


Icmake(1​) ສາ​ມາດ​ນໍາ​ໃຊ້​ເປັນ​ທາງ​ເລືອກ​ໃນ​ການ​ ເຮັດໃຫ້(1). ໃນຮູບແບບການດໍາເນີນງານມາດຕະຖານຂອງມັນ, ມັນ
ໂທຫາໂຄງການດັ່ງຕໍ່ໄປນີ້:

o icm-pp ເພື່ອປະມວນຜົນໄຟລ໌ icmake ກ່ອນ

o icm-comp to byte-code compile the icmake s

o icm-exec ເພື່ອປະຕິບັດໄຟລ໌ byte-code

Icmake ອະ​ນຸ​ຍາດ​ໃຫ້​ຜູ້​ຂຽນ​ໂຄງ​ການ​ທີ່​ຈະ​ນໍາ​ໃຊ້​ພາ​ສາ​ການ​ຂຽນ​ໂປຣ​ແກຣມ (ໃກ້​ຊິດ​ຄ້າຍ​ຄື​ທີ່​ຮູ້​ຈັກ​ດີ​
C-programming language) ເພື່ອກໍານົດການປະຕິບັດທີ່ມີສ່ວນຮ່ວມໃນ (ສະລັບສັບຊ້ອນ).
ບໍາລຸງຮັກສາ. ສໍາລັບການນີ້, icmake ສະຫນອງການປະຕິບັດພິເສດຕ່າງໆເຊັ່ນດຽວກັນກັບຊຸດສະຫນັບສະຫນູນ
ຫນ້າທີ່ພິສູດແລ້ວວ່າມັນເປັນປະໂຫຍດໃນການຮັກສາໂປຼແກຼມ.

ໂຄງການ icmun(1) ສາມາດໃຊ້ເພື່ອຖອດປະກອບໄຟລ໌ byte-code (.bim). ອິກມຸນ
ຕົ້ນຕໍແມ່ນໃຊ້ສໍາລັບຕົວຢ່າງ, ການສຶກສາ, ແລະການດີບັກ.

ເຄື່ອງມືສ້າງສາແບບດັ້ງເດີມຈະລວບລວມແຫຼ່ງຂໍ້ມູນເມື່ອໄຟລ໌ຫົວຖືກດັດແກ້. ໃນ
ສະພາບການຂອງ C ++ ການພັດທະນາໂຄງການນີ້ມັກຈະເປັນຄວາມຄິດທີ່ບໍ່ດີ, ຍ້ອນວ່າການເພີ່ມສະມາຊິກໃຫມ່ໃຫ້ກັບ a
ຫ້ອງຮຽນບໍ່ປົກກະຕິຕ້ອງການໃຫ້ທ່ານລວບລວມແຫຼ່ງຂໍ້ມູນຂອງຊັ້ນຮຽນ. ເພື່ອຈັດການຫ້ອງຮຽນ
dependencies icmbuld(1​) ອາດ​ຈະ​ກວດ​ສອບ​ ຫ້ອງ ໄຟລ໌ທີ່ສາມາດໃຊ້ເພື່ອກໍານົດການຂຶ້ນກັບ
ໃນບັນດາຫ້ອງຮຽນ. ໂດຍຄ່າເລີ່ມຕົ້ນ, class-dependencies ບໍ່ໄດ້ຖືກຕີຄວາມໝາຍ. ອ້າງເຖິງ icmconf(7​)
man-page ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.

OPTIONS


Icmake ໃຊ້ໄຟລ໌ ແລະຕົວເລືອກຕໍ່ໄປນີ້:

o ແຫຼ່ງ: icmake ໄຟລ໌ແຫຼ່ງສະຄຣິບ (ສ່ວນຂະຫຍາຍເລີ່ມຕົ້ນ: im).

o ຈຸດຫມາຍປາຍທາງ: ຄູ່ icmake ໄຟລ໌ສະຄຣິບ (ຄ່າເລີ່ມຕົ້ນ: `ແຫຼ່ງ'.bim, ເອີ້ນວ່າ 'ໄຟລ໌ .bim'
ດ້ານລຸ່ມ).

o --: icmake arguments ແຍກຕົວແຍກ icmake ການໂຕ້ຖຽງຈາກການໂຕ້ຖຽງຜ່ານ
ໄປຫາ .bim filenl() ໂຕ້ຖຽງ: ການໂຕ້ຖຽງຕໍ່ໄປນີ້ -- ຖືກສົ່ງໄປຫາໄຟລ໌ .bim
as-is, ແລະສາມາດໃຊ້ໄດ້ຈາກ ບັນຊີລາຍຊື່ argv ພາລາມິເຕີທີ່ກໍານົດເປັນ icmake
ສະຄຣິບ ຕົ້ນຕໍ ພາລາມິເຕີທີສອງຂອງຟັງຊັນ (ເບິ່ງຂ້າງລຸ່ມນີ້ຢູ່ໃນພາກ ຜູ້ໃຊ້ ກໍານົດ
FUNCTIONS). ສໍາລັບບາງທາງເລືອກ (ເບິ່ງຂ້າງລຸ່ມນີ້) ໄດ້ -- ບໍ່ຈໍາເປັນຕົວແຍກ.

Icmake ສະຫນັບສະຫນູນທາງເລືອກຕ່າງໆ, ອະທິບາຍຕໍ່ໄປ. ໄດ້ -h ທາງເລືອກ overrules ອື່ນທັງຫມົດ
ທາງ​ເລືອກ​, ໄດ້​ -a ທາງເລືອກ overrules ທາງເລືອກອື່ນທັງຫມົດຍົກເວັ້ນສໍາລັບ -h. ຂອງການປະຕິບັດທີ່ຍັງເຫຼືອ
ທາງ​ເລືອກ (-b, -c, -e, -i, -p ແລະ -t) ມີ​ພຽງ​ແຕ່​ຫນຶ່ງ​ອາດ​ຈະ​ໄດ້​ຮັບ​ການ​ລະ​ບຸ​ໄວ້​:

o -a
ສະແດງຂໍ້ມູນກ່ຽວກັບ icmake, overruled ໂດຍ -h;

o -b
discontinued: ໃຊ້ທາງເລືອກ -e ແທນ;

o -c
ໄດ້ icmake ແຫຼ່ງໄຟລ໌ຖືກລວບລວມ, ສ້າງໄຟລ໌ .bim;

o -e
ປະຕິບັດໄດ້ icmake ໄຟລ໌ .bim, ໃຫ້ເປັນ icmakeargument ໄຟລ໌ທໍາອິດ. ເພີ່ມເຕີມໃດໆ
arguments ຖືກສົ່ງກັບໄຟລ໌ .bim as-is, ແລະ -- ບໍ່ຄວນລະບຸ;

o -F
ຊື່ໄຟລ໌ແລະທຸງເຊັ່ນດຽວກັນກັບສະພາບລວມຂອງການປະຕິບັດທັງຫມົດທີ່ຈະດໍາເນີນການໂດຍ
icmake ຖືກສະແດງຢູ່ໃນກະແສຜົນຜະລິດມາດຕະຖານ;

o -h
ໃຫ້ຂໍ້ມູນການນໍາໃຊ້ແລະສິ້ນສຸດ icmake;

o -i
ການໂຕ້ຖຽງທໍາອິດແມ່ນ icmake ໄຟລ໌ຕົ້ນສະບັບ, ໄຟລ໌ຖານສອງແມ່ນ
ກໍ່ສ້າງຖ້າຈໍາເປັນ. ການໂຕ້ແຍ້ງເພີ່ມເຕີມໃດນຶ່ງຈະຖືກສົ່ງຜ່ານໄຟລ໌ .bim
ເຊັ່ນດຽວກັບ, ແລະ -- ບໍ່ຄວນລະບຸ;

o -p
ໄດ້ icmake ໄຟລ໌ແຫຼ່ງແມ່ນພຽງແຕ່ preprocessed, ແລະໄຟລ໌ preprocessed ແມ່ນລາຍລັກອັກສອນ
to icmakeargument ໄຟລ໌ທີສອງຂອງ (ຕາມຄ່າເລີ່ມຕົ້ນ `ແຫຼ່ງ'.pim);

o -q
ບໍ່ສົນໃຈ, ຈະຖືກລຶບອອກໃນອະນາຄົດ icmake ຮຸ່ນ;

o -t
ການໂຕ້ຖຽງດັ່ງຕໍ່ໄປນີ້ -t ແມ່ນຊື່ຂອງໄຟລ໌ .bim ຊົ່ວຄາວ, ເຊິ່ງຖືກລຶບອອກ
ຫຼັງຈາກ icmakeໂທ. ເມື່ອ​ໃດ​ . ຖືກລະບຸເປັນຊື່ຂອງໄຟລ໌ .bim ຊົ່ວຄາວ
ຫຼັງຈາກນັ້ນ, ໄດເລກະທໍລີຊົ່ວຄາວເລີ່ມຕົ້ນ, ຕາມດ້ວຍ icmakeprocess-id ຂອງ, ຕາມດ້ວຍ
.ບິມ ຖືກນໍາໃຊ້.

ປະຕິບັດຕາມຊື່ຂອງ .bim ຊົ່ວຄາວໄຟລ໌ຊື່ຂອງ icmake script ແຫຼ່ງ
ຕ້ອງໄດ້ຮັບການລະບຸ. ການໂຕ້ແຍ້ງເພີ່ມເຕີມໃດນຶ່ງຈະຖືກສົ່ງຜ່ານໄຟລ໌ .bim as-is, ແລະ
-- ບໍ່ຄວນລະບຸ; ຫຼັງ​ຈາກ​ການ​ຕັ້ງ​ທຸງ​ປະ​ຕິ​ບັດ​ໄຟລ​໌ script ແຫຼ່ງ​
(chmod +x script) ແລະ​ໃຫ້​ມັນ​ເປັນ​ແຖວ​ຕົ້ນ​ສະ​ບັບ​ເຊັ່ນ​ນີ້​:

#!/usr/bin/icmake -t.

ໄດ້ icmake script ສາມາດຖືກເອີ້ນວ່າໂດຍກົງ:

script arg1 arg2

ໃນກໍລະນີດັ່ງກ່າວ icmake script `ອັກສອນ' ຖືກປະຕິບັດໃນຂະນະທີ່ມັນໄດ້ຮັບ
ກະທູ້ທີ່ script arg1 arg2.

o -T
ທາງເລືອກນີ້ຕ້ອງໄດ້ຮັບການສະຫນອງໃຫ້ກັບຊື່ຂອງໄດເລກະທໍລີທີ່ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາ
ໄຟລ​໌​ຊົ່ວ​ຄາວ​. ຕົວຢ່າງ: ເມື່ອລວບລວມຂໍ້ມູນ icmake script, ຜົນຜະລິດຂອງ icmake's
preprocessor ແມ່ນໄຟລ໌ຊົ່ວຄາວທີ່ຖືກລຶບອອກໃນເວລາອອກ. ໂດຍຄ່າເລີ່ມຕົ້ນ / tmp ຖືກນໍາໃຊ້,
ເວັ້ນເສຍແຕ່ວ່າ / tmp ບໍ່ແມ່ນໄດເລກະທໍລີທີ່ສາມາດຂຽນໄດ້, ໃນກໍລະນີນີ້ຜູ້ໃຊ້ປະຈຸບັນ $ ບ້ານ
ໄດເລກະທໍລີຖືກນໍາໃຊ້. ຊື່ໄຟລ໌ຊົ່ວຄາວ implicit ເລີ່ມຕົ້ນດ້ວຍ id ຂະບວນການຂອງ
ປະຈຸບັນ icmake ຂະບວນການ.

o -v
ການສະແດງ icmakeເລກສະບັບຂອງ, ແລະສິ້ນສຸດ icmake, overruled ໂດຍ -h

ອິກມຸນ:

bimfile: ຄູ່ icmake ໄຟລ໌ສະຄຣິບ.

ໂປຣເຊສເຊີ ທິດທາງ


ຄຳສັ່ງ preprocessor ຕໍ່ໄປນີ້ແມ່ນມີຢູ່:

o ຄໍາ​ເຫັນ​:
ມາດຕະຖານ C ຄໍາເຫັນ (ທັງຫມົດລະຫວ່າງ /* ແລະ */) ເຊັ່ນດຽວກັນກັບຄໍາຄິດຄໍາເຫັນຕໍ່ທ້າຍແຖວ (ທັງຫມົດ
ເນື້ອໃນແຖວຕໍ່ໄປນີ້ //) ຖືກ​ລະ​ເລີຍ​.

o Shell startup: ແຖວທໍາອິດຂອງ icmake-script ອາດຈະເລີ່ມຕົ້ນດ້ວຍ #!ເສັ້ນທາງ, ບ່ອນທີ່
ເສັ້ນທາງ ກໍານົດສະຖານທີ່ຢ່າງແທ້ຈິງຂອງ icmake ໂຄງການ. ໂດຍການເຮັດບົດ
ປະຕິບັດໄດ້, ມັນສາມາດເອີ້ນວ່າໂດຍບໍ່ມີການໂທຫາຢ່າງຊັດເຈນ icmake.

ຕົວຢ່າງ: ຖ້າແຖວທໍາອິດຂອງ (ປະຕິບັດໄດ້) 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 #include "ຊື່​ເອ​ກະ​ສານ"
ໄຟລ໌ ຊື່​ເອ​ກະ​ສານ ແມ່ນລວມຢູ່ສະຖານທີ່ຂອງຄໍາສັ່ງ

o #include
ໄຟລ໌ ຊື່​ເອ​ກະ​ສານ ແມ່ນລວມຢູ່ໃນສະຖານທີ່ຂອງ #include ຄໍາສັ່ງ; ຊື່​ເອ​ກະ​ສານ
ຖືກຄົ້ນຫາຢູ່ໃນໄດເລກະທໍລີທີ່ຂັ້ນດ້ວຍຈໍ້າສອງເມັດທີ່ລະບຸໄວ້ໂດຍ IM ສະພາບແວດລ້ອມ
ຕົວແປ. ການປະກົດຕົວຄັ້ງທໍາອິດຂອງ ຊື່​ເອ​ກະ​ສານ ໃນໄດເລກະທໍລີທີ່ລະບຸໄວ້ໂດຍ IM
ຕົວແປສະພາບແວດລ້ອມຖືກນໍາໃຊ້.

o #ກໍານົດ ຕົວລະບຸ [ຄໍານິຍາມ]
ຂໍ້ຄວາມ ຕົວລະບຸ ຈະຖືກແທນທີ່ດ້ວຍ ຄໍານິຍາມ. ຄໍານິຍາມອາດຈະປະກອບດ້ວຍ
ການອ້າງອີງເຖິງຕົວລະບຸທີ່ໄດ້ກໍານົດໄວ້ແລ້ວ, ໂດຍໃຊ້ ${identifier} ຮູບແບບ. ຖ້າ
${identifier} ຍັງບໍ່ໄດ້ຖືກກໍານົດ (ເທື່ອ), ຂໍ້ຄວາມ ${identifier} ຖືກເກັບຮັກສາໄວ້ຢ່າງແທ້ຈິງ.
ເພື່ອ​ປ້ອງ​ກັນ​ບໍ່​ໃຫ້​ເກີດ​ທີ່​ບໍ່​ມີ​ຈໍາ​ກັດ​ຫຼາຍ​ທີ່​ສຸດ 100​ ${identifier} ການທົດແທນແມ່ນອະນຸຍາດໃຫ້.

ຄໍານິຍາມສືບຕໍ່ຢູ່ໃນແຖວຕໍ່ໄປຖ້າຕົວອັກສອນສຸດທ້າຍໃນແຖວແມ່ນ a
backslash (\). (ເຊິ່ງບໍ່ໄດ້ລວມຢູ່ໃນຄໍານິຍາມ). ໂປເຊດເຊີກ່ອນ
concatenates double-quuted strings, ແລະ strings ວົງຢືມ double ອາດຈະບໍ່ຂະຫຍາຍຫຼາຍ
ສາຍ. ຊ່ອງຫວ່າງຫຼາຍອັນ (ນອກສະຕຣິງທີ່ອ້າງອີງຄູ່) ໃນຄໍານິຍາມແມ່ນ
ສັນຍາກັບພື້ນທີ່ຫວ່າງດຽວ.

ຄໍານິຍາມດັ່ງຕໍ່ໄປນີ້ # ນິຍາມ ຕົວລະບຸເປັນທາງເລືອກ. ຖ້າຖືກລະເວັ້ນ, ໄດ້
macro ຖືກກໍານົດ, ສະນັ້ນມັນສາມາດຖືກນໍາໃຊ້ໃນ #if(n) def ຄໍາແນະນໍາ (ເບິ່ງຂ້າງລຸ່ມນີ້), ແຕ່ພວກເຂົາ
ບໍ່ໄດ້ຖືກແທນທີ່ດ້ວຍຂໍ້ຄວາມໃດໆໃນ icmake ຖະແຫຼງການຂອງລະຫັດ.

o #ifdef ຕົວລະບຸ
ຖ້າ ຕົວລະບຸ macro ໄດ້ຖືກກໍານົດເປັນບລັອກຕໍ່ໄປຂອງລະຫັດ (ຈົນກ່ວາການຈັບຄູ່ #ອື່ນ
or #ສຸດທ້າຍ ຄໍາສັ່ງໄດ້ຖືກອ່ານ) ແມ່ນ byte-compiled. ຖ້າບໍ່ດັ່ງນັ້ນ, ຕັນຂອງລະຫັດແມ່ນ
ບໍ່ສົນໃຈ.

o #ifndef ຕົວລະບຸ
ຖ້າ ຕົວລະບຸ ມະຫາພາກແມ່ນ ບໍ່ ກໍານົດລະຫັດຕໍ່ໄປຂອງລະຫັດ (ຈົນກ່ວາການຈັບຄູ່
#ອື່ນ or #ສຸດທ້າຍ ຄໍາສັ່ງໄດ້ຖືກກວດພົບ) ແມ່ນ byte-compiled. ຖ້າບໍ່ດັ່ງນັ້ນ, ຕັນຂອງ
ລະຫັດຖືກລະເລີຍ.

o #ອື່ນ
ຢຸດຕິ ກ #ifdef ແລະ #ifndef ຄໍາສັ່ງ, reversing ການຕັດສິນໃຈຍອມຮັບກ່ຽວກັບ
ລະຫັດຕໍ່ໄປນີ້. ພຽງແຕ່ຫນຶ່ງ #ອື່ນ ຄໍາສັ່ງສາມາດເຊື່ອມໂຍງກັບ #if(n) def
ທິດທາງ.

o #ສຸດທ້າຍ
ຢຸດການປິດໂປຣເຊສເຊີກ່ອນເລີ່ມຈາກການຈັບຄູ່ #ifdef, #ifndef or #ອື່ນ
ຄໍາສັ່ງ. ໄດ້ #ສຸດທ້າຍ ໄດເລກະທໍລີແລະການຈັບຄູ່ຂອງມັນ #if(n) def ຄໍາສັ່ງຕ້ອງເປັນ
ລະບຸໄວ້ໃນໄຟລ໌ດຽວກັນ.

o #ສຸດຍອດ ຕົວລະບຸ
ເອົາ ຕົວລະບຸ ຈາກຊຸດຂອງສັນຍາລັກທີ່ກໍານົດໄວ້. ນີ້ບໍ່ມີຜົນກະທົບ
ສະເພາະຂອງສັນຍາລັກທີ່ກຳນົດໄວ້ກ່ອນໜ້ານີ້ ຕົວລະບຸ ຄໍານິຍາມ
ໄດ້​ຖືກ​ນໍາ​ໃຊ້​. ຖ້າ ຕົວລະບຸ ຍັງ​ບໍ່​ທັນ​ໄດ້​ຮັບ​ການ​ອອກ​ຄໍາ​ເຕືອນ​.

ຂໍ້ມູນ TYPES


Icmake ສະ​ຫນັບ​ສະ​ຫນູນ​ປະ​ເພດ​ຂໍ້​ມູນ​ເຫຼົ່າ​ນີ້​:

o ASCII ລັກສະນະ ຄົງທີ່
ຄ່າຄົງທີ່ຂອງຕົວອັກສອນ ASCII ປະກອບດ້ວຍໜຶ່ງຕົວອັກສອນ, ອ້ອມຮອບດ້ວຍຕົວດຽວ ຫຼື ຄູ່
ວົງຢືມ. ຕົວອັກສອນດຽວ (ຕົວຢ່າງ: 'ກ') ເປັນຕົວແທນຂອງລັກສະນະຕົວມັນເອງ. ມາດຕະຖານ
ລໍາດັບການຫລົບຫນີ (ຕົວຢ່າງ: '\n') ໄດ້ຮັບການສະຫນັບສະຫນູນແລະເປັນຕົວແທນຂອງມາດຕະຖານທີ່ປ່ຽນໃຈເຫລື້ອມໃສຂອງພວກເຂົາ
ມູນຄ່າ (ຕົວຢ່າງ: '\n' ເປັນຕົວແທນຂອງຄ່າ ascii 10 (ທົດສະນິຍົມ)). ການຫລົບຫນີທີ່ບໍ່ໄດ້ມາດຕະຖານ
ລໍາດັບ (ຕົວຢ່າງ, '\x') ເປັນຕົວແທນຂອງລັກສະນະ ascii ປະຕິບັດຕາມລັກສະນະການຫລົບຫນີ
(ດັ່ງນັ້ນ '\x' ເທົ່າກັນ 'x'). ລໍາດັບການຫລົບຫນີທີ່ປະກອບດ້ວຍສາມຕົວເລກຖານແປດເປັນຕົວແທນ
ລັກສະນະ ascii ທີ່ສອດຄ້ອງກັບໂມດູໂລ octal value 256 (ຕົວຢ່າງ: '\123').
ລໍາດັບ Escape ປະກອບດ້ວຍ x ຕິດຕາມດ້ວຍສອງຕົວເລກຖານສິບຫົກເປັນຕົວແທນ
ຕົວອັກສອນ ascii ທີ່ສອດຄ້ອງກັບຄ່າເລກຖານສິບຫົກ (ຕົວຢ່າງ: '\xa4').

o int
ຄ່າລວມ, ຕັ້ງແຕ່ -0x8000 ໂດຍຜ່ານການ 0x7ffff. int ຄົງທີ່ອາດຈະເປັນ
ລະບຸເປັນຕົວເລກທົດສະນິຍົມ (ເລີ່ມຕົ້ນດ້ວຍຕົວເລກ 1 ຫາ 9), ເລກແປດ
(ເລີ່ມຕົ້ນດ້ວຍ 0, ຕິດຕາມດ້ວຍຕົວເລກແປດ ຫຼືຫຼາຍກວ່ານັ້ນ) ເລກຖານສິບຫົກ
(ເລີ່ມຕົ້ນດ້ວຍ 0x, ຕິດຕາມດ້ວຍຕົວເລກເລກຖານສິບຫົກຫຼືຫຼາຍກວ່ານັ້ນ) ຫຼືເປັນ ASCII
ຄົງຕົວ.

o string
ຕົວແປຂໍ້ຄວາມ. String constant ແມ່ນ delimited by double quotes. ຫຼາຍສາຍ
constant ອາດ​ຈະ​ໄດ້​ຮັບ​ການ concatenated​, ແຕ່​ສະ​ຕ​ຣິ​ງ​ຄົງ​ທີ່​ດຽວ​ອາດ​ຈະ​ບໍ່​ໄດ້​ກວມ​ເອົາ​ຫຼາຍ​
ສາຍ. ສະຕຣິງຄົງທີ່ທີ່ແຍກອອກດ້ວຍພື້ນທີ່ສີຂາວເທົ່ານັ້ນ (ເຊັ່ນ: ຊ່ອງຫວ່າງ, ແຖວໃໝ່,
ຄໍາຄິດເຫັນ) ແມ່ນ concatenated ແລະເປັນຕົວແທນຂອງຄົງທີ່ສະຕຣິງດຽວ. ເພື່ອຊີ້ໃຫ້ເຫັນເຖິງ
end-of-line ໃນ string constant ໃຊ້ the \n ລໍາດັບການຫລົບຫນີ.

ຕົວເລກຄົງທີ່ຂອງຕົວອັກສອນ ASCII ອ້ອມຮອບດ້ວຍວົງຢືມຄູ່ຍັງສາມາດຖືກນໍາໃຊ້ໃນ
ການສະແດງອອກທາງເລກຄະນິດຖ້າໜຶ່ງໃນຕົວດຳເນີນການແມ່ນ an int. ລັກສະນະດຽວ
ຄົງທີ່ ຕ້ອງ ເປັນຄົງທີ່, ແລະບໍ່ສາມາດເປັນ string ຕົວແປ.

ເຊັ່ນດຽວກັນ, ຕົວອັກສອນ ASCII ຄົງທີ່ອ້ອມຮອບດ້ວຍວົງຢືມດຽວອາດຈະຖືກນໍາໃຊ້ໃນ
ສະຖານະການທີ່ຄາດການ string operand.

o ບັນຊີລາຍຊື່
ໂຄງສ້າງຂໍ້ມູນທີ່ມີຊຸດຂອງສ່ວນບຸກຄົນທີ່ສາມາດເຂົ້າເຖິງໄດ້ string ຄຸນຄ່າ. ເມື່ອ​ໃດ​
ບັນຊີລາຍຊື່ປະກອບດ້ວຍອົງປະກອບ, ອົງປະກອບທໍາອິດຂອງມັນຖືກສະແດງໂດຍດັດຊະນີ 0.

o void
ໃຊ້ກັບນິຍາມຟັງຊັນເພື່ອຊີ້ບອກວ່າຟັງຊັນບໍ່ສົ່ງຄືນ a
ມູນຄ່າ.

ຕົວແປສາມາດຖືກກໍານົດໃນລະດັບໂລກເຊັ່ນດຽວກັນກັບລະດັບທ້ອງຖິ່ນພາຍໃນ
ຫນ້າທີ່. ເມື່ອກໍານົດພາຍໃນຫນ້າທີ່, ມາດຕະຖານ C ຂອບເຂດ ແລະກົດລະບຽບການເບິ່ງເຫັນ
ສະຫມັກ. ຕົວຢ່າງ, ຕົວແປທ້ອງຖິ່ນສາມາດຖືກນໍາໃຊ້ພຽງແຕ່ຢູ່ໃນຕົວຂອງມັນເອງຫຼືຢູ່ໃນຮັງທີ່ເລິກເຊິ່ງກວ່າ
ຕັນ, ການເບິ່ງເຫັນຂອງພວກມັນຖືກປິດບັງຢູ່ໃນທ່ອນໄມ້ທີ່ມີຮັງຫຼາຍໂດຍການກໍານົດຕົວຕົນ.
ມີຊື່ຕົວແປພາຍໃນທ່ອນໄມ້ທີ່ຝັງເລິກກວ່ານັ້ນ. ຕົວແປຖືກພິມຢ່າງແຂງແຮງ, ແລະ
ບໍ່ສາມາດມີປະເພດ void.

ຕົວແປອາດຈະໄດ້ຮັບການເລີ່ມຕົ້ນເມື່ອພວກເຂົາຖືກກໍານົດ. Initializations ແມ່ນການສະແດງອອກ, ວ່າ
ສາ​ມາດ​ນໍາ​ໃຊ້​ຫນ້າ​ທີ່​ກໍາ​ນົດ​ໄວ້​ກ່ອນ​ຫຼື​ໂດຍ​ຜູ້​ໃຊ້​, ຄ່າ​ຄົງ​ທີ່​, ແລະ​ຄຸນ​ຄ່າ​ຂອງ​ຕົວ​ແປ​ທີ່​ມີ​
ສັງເກດເຫັນຢູ່ໃນຈຸດຂອງຄໍານິຍາມ.

ກຳນົດໄວ້ລ່ວງໜ້າ ຄົງທີ່


ຄົງທີ່ຕໍ່ໄປນີ້ແມ່ນຖືກກໍານົດໄວ້ລ່ວງໜ້າໂດຍ icmake. ທັງຫມົດແມ່ນຄົງທີ່ int ຄຸນຄ່າ:

─────────────────────────────────
ຄ່າສັນຍາລັກທີ່ມີຈຸດປະສົງ
─────────────────────────────────
O_ALL 8 makelist
O_DIR 2 makelist
O_FILE 1 ບັນຊີລາຍການ
O_SUBDIR 4 makelist
─────────────────────────────────
ປິດ 0 ສຽງດັງ
ON 1 ສຽງດັງ
─────────────────────────────────
P_CHECK 0 ໂທລະບົບ
P_NOCHEC 1 ໂທລະບົບ
─────────────────────────────────
S_IEXEC 32 ສະຖິຕິ
S_IFCHR 1 ສະຖິຕິ
S_IFDIR 2 ສະຖິຕິ
S_IFREG 4 ສະຖິຕິ
S_IREAD 8 ສະຖິຕິ
S_IWRITE 16 ສະຖິຕິ
─────────────────────────────────

ຄົງທີ່ຕໍ່ໄປນີ້ແມ່ນຂຶ້ນກັບສະຖາປັດຕະຍະກຳ:

────────────────────────────────────────── ──────────────
ສັນ​ຍາ​ລັກ 1 ໃນ​ເວ​ລາ​ທີ່​ກໍາ​ນົດ​ໄວ້​ໃນ​ເວ​ທີ​, ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​ແມ່ນ 0​
────────────────────────────────────────── ──────────────
unix Unix, ປົກກະຕິແລ້ວມີ gcc compiler ຂອງ GNU
UNIX ອາດມີທາງເລືອກອື່ນ
linux x86 ແລ່ນ Linux (ປົກກະຕິແລ້ວມີ gcc)
LINUX ອາດມີທາງເລືອກອື່ນ
M_SYSV, M_UNIX x86 ແລ່ນ SCO/Unix
_POSIX _SOURCE Unix ກັບ Posix compliant compiler
__hpux HP-UX, ກັບຄອມພີເລີ HP ພື້ນເມືອງ
────────────────────────────────────────── ──────────────

ຜູ້ປະກອບການ


ພິມ int ໂຕປະຕິບັດການ:

ທັງຫມົດ C ໂຕປະຕິບັດການສາມາດໃຊ້ໄດ້ (ຍົກເວັ້ນຕົວຊີ້ບອກ, ເປັນ icmake ບໍ່ສະຫນັບສະຫນູນ
ຕົວຊີ້). ພວກເຂົາເຈົ້າດໍາເນີນການຄືກັບຂອງເຂົາເຈົ້າ C- ຄູ່​ຮ່ວມ​ງານ​ພາ​ສາ​ໂຄງ​ການ​.

string-typed ໂຕປະຕິບັດການ:

ສໍາລັບການ string ປະເພດຕົວແປ ແລະ/ຫຼືຄ່າຄົງທີ່ຕົວປະຕິບັດການຕໍ່ໄປນີ້ແມ່ນມີຢູ່ (a ແລະ b
ເປັນຕົວແທນຂອງ string ຕົວແປ ຫຼືຄ່າຄົງທີ່):

o a + b: ກັບຄືນມາໃໝ່ string ມູນ​ຄ່າ​ທີ່​ປະ​ກອບ​ດ້ວຍ concatenation ຂອງ​ string ຄ່າ a
ແລະ b. ໃຫ້ສັງເກດວ່າ string ຄົງທີ່ອາດຈະຖືກ concatetated ໂດຍກົງ (ໂດຍບໍ່ມີການນໍາໃຊ້ +
operator), eg, ສອງເສັ້ນຕໍ່ໄປນີ້ທັງສອງກໍານົດ string "ສະບາຍດີ ໂລກ ":

"ສະ​ບາຍ​ດີ​ຊາວ​ໂລກ"
"ສະບາຍດີ" + "ໂລກ"

o a += b: a ຕ້ອງເປັນ string ຕົວແປ, ທີ່ string ຕົວແປຫຼືມູນຄ່າ b is
ຕໍ່ທ້າຍ.

o ການປຽບທຽບ string: operators == != <= >= < > != ແລະ == ອາດຈະຖືກນໍາໃຊ້ກັບ string
ຄ່າ ຫຼືຕົວແປ, ສົ່ງຄືນ 1 ຖ້າການປຽບທຽບສຳເລັດ, ຖ້າບໍ່ດັ່ງນັ້ນ 0.
ການປຽບທຽບແມ່ນຕົວພິມນ້ອຍ, ແລະປະຕິບັດຕາມຄໍາສັ່ງຫຼືຕົວອັກສອນຕາມທີ່ໄດ້ກໍານົດ
ໃນ ASCII ຊຸດຕົວອັກສອນ.

o !a: ບູລີນ ! (ບໍ່) operator ກັບຄືນ 1 ຖ້າ string a ແມ່ນຫວ່າງເປົ່າ, ຖ້າບໍ່ດັ່ງນັ້ນ 0 ແມ່ນ
ກັບຄືນມາ.

o a younger b, a ໃຫມ່ກວ່າ b: ຕອບ 1 ຖ້າໄຟລ໌ a ບໍ່ດົນມານີ້ຫຼາຍກ່ວາໄຟລ໌ b. ຕົວຢ່າງ:
"source.cc" ໃຫມ່ກວ່າ "ແຫຼ່ງ.o". ໄຟລ໌ a ແລະ b ບໍ່ຈໍາເປັນຕ້ອງມີ: ຖ້າທັງສອງບໍ່ມີ
ມີຢູ່ 0 ຖືກສົ່ງຄືນ; ຖ້າ b ບໍ່ມີ, 1 ຖືກສົ່ງຄືນ; ຖ້າ a ບໍ່ມີ 0 ແມ່ນ
ກັບຄືນ; ຖ້າພວກເຂົາມີອາຍຸເທົ່າທຽມກັນ 0 ຈະຖືກສົ່ງຄືນ. (ໄດ້ ມີຢູ່() ຟັງຊັນທີ່ກໍານົດໄວ້ກ່ອນ
(ເບິ່ງຂ້າງລຸ່ມນີ້, ພາກ ກຳນົດໄວ້ລ່ວງໜ້າ FUNCTIONS) ສາມາດຖືກນໍາໃຊ້ເພື່ອທົດສອບຢ່າງຊັດເຈນວ່າ a
ໄຟລ໌ມີຢູ່).

o a ເກົ່າກວ່າເກົ່າ b: turns 1 if file a ເກົ່າກວ່າໄຟລ໌ b. ຕົວຢ່າງ: "libprog.a" ເກົ່າກວ່າເກົ່າ
"ແຫຼ່ງ.o". ໄຟລ໌ a ແລະ b ບໍ່ຈໍາເປັນຕ້ອງມີ: ຖ້າທັງສອງບໍ່ມີ 0 ແມ່ນ
ກັບຄືນ; ຖ້າ a ບໍ່ມີ, 1 ຖືກສົ່ງຄືນ; ຖ້າ b ບໍ່ມີ 0 ຖືກສົ່ງຄືນ; ຖ້າ
ພວກ​ເຂົາ​ເຈົ້າ​ມີ​ອາ​ຍຸ​ເທົ່າ​ທຽມ​ກັນ 0 ຖືກ​ກັບ​ຄືນ.

o []: ຕົວປະຕິບັດການດັດສະນີດຶງເອົາຕົວອັກສອນຈາກຕົວແປສະຕຣິງ ຫຼືຄົງທີ່: ມັນ
ຕອບສະຕຣິງເປັນ ມູນຄ່າ. ດັ່ງນັ້ນ, ຄໍາຖະແຫຼງຕໍ່ໄປນີ້ລວບລວມ OK:

// ສົມມຸດວ່າ str1 ແລະ str2 ແມ່ນສະຕຣິງ
str1 = str2[3];

ແຕ່ຄໍາຖະແຫຼງຕໍ່ໄປນີ້ຈະບໍ່ລວບລວມ:

str2[3] = "a";

ສະຕຣິງຫວ່າງເປົ່າຈະຖືກສົ່ງຄືນຖ້າຄ່າດັດສະນີທີ່ບໍ່ຖືກຕ້ອງຖືກສະໜອງໃຫ້.

o ຕົວປະຕິບັດການ `backtic` (`ສາຍ cmd`)
ສະຕຣິງທີ່ວາງໄວ້ລະຫວ່າງສອງ backticks ຖືກປະຕິບັດໂດຍ popen(3) ຫນ້າທີ່. ໄດ້
ຜົນຜະລິດມາດຕະຖານ gererated ໂດຍຄໍາສັ່ງທີ່ເກັບໄວ້ໃນ string argument ແມ່ນ
ກັບຄືນມາເປັນບັນຊີລາຍຊື່. ບັນຊີລາຍຊື່ຫວ່າງເປົ່າຊີ້ໃຫ້ເຫັນວ່າຄໍາສັ່ງບໍ່ສາມາດຖືກປະຕິບັດໄດ້.
ຄໍາສັ່ງທີ່ສາມາດປະຕິບັດໄດ້ແຕ່ບໍ່ໄດ້ຜະລິດຜົນຜະລິດໃດໆສົ່ງຄືນບັນຊີລາຍຊື່
ປະກອບດ້ວຍອົງປະກອບຫວ່າງເປົ່າ. ຄວາມຜິດພາດມາດຕະຖານຂອງຄໍາສັ່ງການຖ່າຍທອດຜົນຜະລິດບໍ່ແມ່ນ
ເກັບກໍາໂດຍຕົວປະຕິບັດການ backtick. ຢ່າງໃດກໍຕາມ, ການປ່ຽນເສັ້ນທາງແກະມາດຕະຖານອາດຈະເປັນ
ໃຊ້ເພື່ອເກັບກຳຜົນຜະລິດສະຕຣີມຄວາມຜິດພາດມາດຕະຖານ. ຕົວຢ່າງ:

printf(`"ls"`); // ພິມອົງປະກອບໃນ
// ໄດເລກະທໍລີປະຈຸບັນ

ຫນ້າທີ່ກໍານົດໄວ້ລ່ວງຫນ້າ eval(string cmd) ປະຕິບັດຕົວຄືກັບ backtick
operator: ພວກມັນແມ່ນຄໍາສັບຄ້າຍຄືກັນ.

ພິມລາຍການ ໂຕປະຕິບັດການ:

ສໍາລັບການ ບັນຊີລາຍຊື່ ປະເພດຕົວແປ ແລະ/ຫຼືຄ່າຂອງຕົວປະຕິບັດການຕໍ່ໄປນີ້ແມ່ນມີຢູ່:

o a + b: ກັບຄືນມາໃໝ່ ບັນຊີລາຍຊື່ ມູນ​ຄ່າ​ທີ່​ປະ​ກອບ​ດ້ວຍ concatenation ຂອງ​ ບັນຊີລາຍຊື່ ຄ່າ a ແລະ
b. ນີ້​ແມ່ນ ບໍ່ ການ​ດໍາ​ເນີນ​ງານ​ທີ່​ກໍາ​ນົດ​ໄວ້​: ຖ້າ​ຫາກ​ວ່າ​ອົງ​ປະ​ກອບ​ປະ​ກົດ​ວ່າ​ທັງ​ສອງ​ໃນ​ a ແລະໃນ b, ພວກ​ເຂົາ​ຈະ
ປາກົດສອງຄັ້ງໃນບັນຊີລາຍຊື່ຜົນໄດ້ຮັບ (ຊຸດເພີ່ມແມ່ນສະຫນອງໃຫ້ໂດຍ built-in
ຫນ້າທີ່ ລາຍການ).

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: ບູລີນ ! operator ກັບຄືນ 1 ຖ້າ ບັນຊີລາຍຊື່ a ແມ່ນຫວ່າງເປົ່າ, ຖ້າບໍ່ດັ່ງນັ້ນ 0 ແມ່ນ
ກັບຄືນມາ.

o []: ຕົວປະຕິບັດການດັດສະນີດຶງເອົາອົງປະກອບລາຍຊື່ຈາກຕົວແປລາຍຊື່: ມັນສົ່ງຄືນ a
string ເປັນ ມູນຄ່າ. ດັ່ງນັ້ນ, ຄໍາຖະແຫຼງຕໍ່ໄປນີ້ລວບລວມ OK:

// assume lst is a list, str ເປັນ string
str = lst[3];

ແຕ່ຄໍາຖະແຫຼງຕໍ່ໄປນີ້ຈະບໍ່ລວບລວມ:

lst[3] = str;

ສະຕຣິງຫວ່າງເປົ່າຈະຖືກສົ່ງຄືນຖ້າຄ່າດັດສະນີທີ່ບໍ່ຖືກຕ້ອງຖືກສະໜອງໃຫ້.

ແມ່ພິມສໍາລັບ:

ປະເພດສຽງໂຫວດທັງຫມົດອາດຈະຖືກປະຕິບັດໂດຍໃຊ້ມາດຕະຖານ C cast-operator ເພື່ອສົ່ງສັນຍານ:

o Strings ກັບ ints ແລະໃນທາງກັບກັນ ((int)"123", (string)55)

o Strings ກັບລາຍການ (ບັນຊີລາຍຊື່ ອັນດັບທີ = (ບັນຊີລາຍຊື່) "ສະບາຍດີ")

ອັດຕາການໄຫລ ການຄວບຄຸມ


Icmake ສະເຫນີຊຸດຍ່ອຍຕໍ່ໄປນີ້ຂອງ Cຖະແຫຼງການຂອງ. ເຂົາເຈົ້າສາມາດຖືກນໍາໃຊ້ເປັນໃນ C
ພາສາໂປລແກລມ

o ການສະແດງອອກ ;
ຄໍາຖະແຫຼງການສະແດງອອກທໍາມະດາ;

o ຄໍາຖະແຫຼງການປະສົມ
ຕົວແປຂອງປະເພດໃດ ໜຶ່ງ ອາດຈະຖືກ ກຳ ນົດແລະເລີ່ມຕົ້ນຢູ່ບ່ອນໃດກໍ່ຕາມພາຍໃນສານປະສົມ
ຖະແຫຼງການ. ໄດ້ ການເບິ່ງເຫັນ ຂອງຕົວແປເລີ່ມຕົ້ນຢູ່ໃນຈຸດຂອງຄໍານິຍາມຂອງມັນ.

o if (ສະພາບ) ຄໍາຖະແຫຼງທີ່
ພາຍໃນເງື່ອນໄຂຕົວແປອາດຈະຖືກກໍານົດແລະເລີ່ມຕົ້ນ. ຕົວຢ່າງ:

ຖ້າ (string str = getText())
ຂະບວນການ(str);

ໃນຕົວຢ່າງນີ້, ຂະບວນການ ບໍ່ໄດ້ເອີ້ນວ່າຖ້າຫາກວ່າ getText () ຕອບສະຕຣິງຫວ່າງເປົ່າ. ໄດ້
ຕົວແປ str ບໍ່ມີທັງກ່ອນຫຼືຫຼັງຈາກ if ຄໍາຖະແຫຼງທີ່.

o if (ສະພາບ) ຄໍາຖະແຫຼງທີ່ ອື່ນ ຄໍາຖະແຫຼງທີ່
ເຊັ່ນດຽວກັນກັບຄໍາຖະແຫຼງທີ່ຜ່ານມາ, ພາຍໃນເງື່ອນໄຂຕົວແປອາດຈະຖືກກໍານົດແລະ
ເລີ່ມຕົ້ນ.

o ສໍາລັບການ (ໃນ​ມັນ; ສະພາບ; ເພີ່ມຂຶ້ນ) ຄໍາຖະແຫຼງທີ່
ຕົວແປ (ຂອງປະເພດດຽວ) ອາດຈະໄດ້ຮັບການເລີ່ມຕົ້ນ (ແລະເລືອກທາງເລືອກ) ໃນ
ໃນ​ມັນ ພາກສ່ວນ. ໄດ້ ໃນ​ມັນ, ສະພາບ ແລະ ການເພີ່ມຂື້ນ ພາກສ່ວນອາດຈະຫວ່າງເປົ່າ. ໄດ້
ພາກສ່ວນເງື່ອນໄຂທີ່ຫວ່າງເປົ່າຖືກຕີຄວາມວ່າ 'ສະເຫມີ ທີ່ແທ້ຈິງ'.

o ໃນຂະນະທີ່ (ສະພາບ) ຄໍາຖະແຫຼງທີ່
ພາຍໃນເງື່ອນໄຂຕົວແປອາດຈະຖືກກໍານົດແລະເລີ່ມຕົ້ນ.
ການເສີມ do ... ໃນຂະນະທີ່ () ບໍ່ມີໃບປະກາດ. ໃຫ້ສັງເກດວ່າການກໍານົດ a
ຕົວແປ, ການນໍາໃຊ້ການສະແດງອອກເບື້ອງຕົ້ນຫມາຍຄວາມວ່າການເລີ່ມຕົ້ນ
ການສະແດງອອກແມ່ນປະຕິບັດໃນແຕ່ລະ iteration ຂອງ ໃນຂະນະທີ່ ຖະແຫຼງການ. ດັ່ງນັ້ນຕໍ່ໄປນີ້
ຄໍາ​ຖະ​ແຫຼງ​ການ​ຈະ​ບໍ່​ມີ​ທີ່​ສິ້ນ​ສຸດ​, ແລະ​ຈະ​ສະ​ແດງ​ນ​້​ໍ​າ​ທີ່​ບໍ່​ມີ​ທີ່​ສິ້ນ​ສຸດ​ຂອງ​ຄຸນ​ຄ່າ 10​:

ໃນຂະນະທີ່ (int x = 10)
printf(x--, "\n");

o ກັບມາ;, ແລະ ການກັບຄືນມາ ການສະແດງອອກ;
ທໍາມະດາ ການກັບຄືນມາ ຖະແຫຼງການສາມາດຖືກນໍາໃຊ້ໃນ void ຫນ້າທີ່, ແລະ ການກັບຄືນມາ ການສະແດງອອກ
ຄໍາຖະແຫຼງທີ່ຖືກນໍາໃຊ້ໃນປະເພດອື່ນໆຂອງຫນ້າທີ່. ຫນ້າທີ່ ຕົ້ນຕໍ ມີປະເພດກັບຄືນ
void ແລະອື່ນໆໃນ ຕົ້ນຕໍ ທົ່ງພຽງ ການກັບຄືນມາ ຖະແຫຼງການສາມາດນໍາໃຊ້ໄດ້. ໂດຍຄ່າເລີ່ມຕົ້ນເປັນ icmake
ຄ່າອອກຂອງສະຄຣິບເທົ່າກັບ 0. ໃຊ້ຟັງຊັນໃນຕົວ ການທ່ອງທ່ຽວ (ເບິ່ງຂ້າງລຸ່ມນີ້) ເພື່ອກໍານົດ
ຄ່າທາງອອກອື່ນໆ.

Be ແນະນຳ: ພຶດຕິກໍາຂອງຟັງຊັນທີ່ບໍ່ແມ່ນ void ທີ່ບໍ່ສົ່ງຄືນຄ່າແມ່ນບໍ່ໄດ້ກໍານົດ.

o ພັກຜ່ອນ
ໃບ ສໍາລັບການ ແລະ ໃນຂະນະທີ່ ຖະແຫຼງການ, overruing ເງື່ອນໄຂຂອງຖະແຫຼງການ.

o ດໍາເນີນການຕໍ່
ສືບຕໍ່ດ້ວຍ iteration ຕໍ່ໄປຂອງ a ສໍາລັບການ or ໃນຂະນະທີ່ ຄໍາຖະແຫຼງທີ່.

o ອອກ(ສະແດງອອກ)
ສິ້ນສຸດການປະຕິບັດຂອງ an icmake-script. ໄດ້ ການສະແດງອອກ ຕ້ອງ​ປະ​ເມີນ​ຜົນ​ເປັນ​ int
ຄ່າ, ເຊິ່ງກາຍເປັນຄ່າອອກຂອງສະຄຣິບ.

ກຳນົດໄວ້ລ່ວງໜ້າ FUNCTIONS


Icmake ສະເຫນີຫນ້າທີ່ກໍານົດໄວ້ລ່ວງຫນ້າດັ່ງຕໍ່ໄປນີ້, ເຊິ່ງສາມາດນໍາໃຊ້ໄດ້ທຸກບ່ອນໃນ icmake
ສະຄຣິບ. ພາບລວມຕໍ່ໄປນີ້ແມ່ນຈັດລຳດັບຕາມຕົວອັກສອນຕາມຊື່ຟັງຊັນ.

o void Arghead(string h)
ຫນ້າທີ່ຜູ້ຊ່ວຍຂອງ exec() (ເບິ່ງຂ້າງລຸ່ມນີ້ຢູ່ທີ່ exec()): ກໍານົດ 'ຫົວການໂຕ້ຖຽງ',
ທີ່ຈະນໍາໃຊ້ກັບ exec(). ໂດຍຄ່າເລີ່ມຕົ້ນ, 'ຫົວອາກິວເມັນ' ແມ່ນສະຕຣິງຫວ່າງເປົ່າ.

o void ຫາງ (ສາຍ t)
ຫນ້າທີ່ຜູ້ຊ່ວຍຂອງ exec() (ເບິ່ງຂ້າງລຸ່ມນີ້ຢູ່ທີ່ exec()): ກໍານົດ 'ຫາງການໂຕ້ຖຽງ',
ທີ່ຈະນໍາໃຊ້ກັບ exec(). ໂດຍຄ່າເລີ່ມຕົ້ນ, 'ຫາງຂອງອາກິວເມັນ' ແມ່ນສະຕຣິງຫວ່າງເປົ່າ.

o int ascii(string s)
ສົ່ງຄືນຕົວອັກສອນທຳອິດຂອງ s ເປັນ int; ຕົວຢ່າງ: ascii("A") ກັບຄືນ 65;

o string ascii(int i)
ຜົນຕອບແທນ i ເປັນ string, eg, ASCII(65​) ຕອບສະຕຣິງ "TO";

o string change_base(string ແຟ້ມ, string ຖານ​ໃຫມ່)
ປ່ຽນຊື່ພື້ນຖານຂອງ ເອກະສານ, ສົ່ງຄືນຊື່ທີ່ປ່ຽນ. ຕົວຢ່າງ:
change_base("/path/demo.im", "ອອກ") ກັບຄືນມາ "/path/out.im";

o string change_ext(string ແຟ້ມ, string ໃໝ່ຕໍ່ໄປ)
ການປ່ຽນແປງການຂະຫຍາຍຂອງ ເອກະສານ, ສົ່ງຄືນຊື່ທີ່ປ່ຽນ. ຕົວຢ່າງ:
rss_changeExt("source.cc", "o") ກັບຄືນມາ "ແຫຼ່ງ.o";

o string change_path(string ແຟ້ມ, string ເສັ້ນທາງໃໝ່)
ປ່ຽນແປງສະເພາະເສັ້ນທາງຂອງ ເອກະສານ, ສົ່ງຄືນຊື່ທີ່ປ່ຽນ. ຕົວຢ່າງ:
change_path("tmp/binary", "/ usr / ຖັງ") ກັບຄືນມາ "/usr/bin/binary". ໃຫ້ສັງເກດວ່າ
/-separator ແມ່ນ inserted ຖ້າ​ຫາກ​ວ່າ​ຕ້ອງ​ການ​.

o string chdir(string newdir)
ປ່ຽນແປງໄດເລກະທໍລີການເຮັດວຽກຂອງສະຄຣິບ, ສົ່ງຄືນ dir ທີ່ຜ່ານມາເປັນຢ່າງແທ້ຈິງ
ເສັ້ນທາງ

ການນໍາໃຊ້ chdir(".") ເພື່ອ​ໃຫ້​ໄດ້​ຮັບ​ການ​ເຮັດ​ວຽກ​ໃນ​ປັດ​ຈຸ​ບັນ​, chdir("") ອາດຈະຖືກນໍາໃຊ້ເພື່ອ
ໄດ້​ຮັບ​ການ​ເລີ່ມ​ຕົ້ນ​ການ​ເຮັດ​ວຽກ​ລະ​ບົບ (ການ​ທໍາ​ງານ​ນີ້​ໄດ້​ຖືກ​ແຍກ​ອອກ​ໃນ​ການ​ປ່ອຍ​
ກ່ອນ 7.00, ແຕ່ປະຈຸບັນໄດ້ດໍາເນີນການ). ຟັງຊັນຢຸດການ
icmake-script ຖ້າ​ຫາກ​ວ່າ​ລະ​ບຸ​ໄວ້​ ໃໝ່ ບໍ່ມີຢູ່

o string chdir(int ການ​ກວດ​ສອບ​, string newdir)
ຫນ້າທີ່ດຽວກັນກັບຫນ້າທີ່ທີ່ຜ່ານມາ, ແຕ່ໂດຍການລະບຸ ການກວດສອບ as
P_NOCHEC. ຟັງຊັນຈະບໍ່ຢຸດສະຄຣິບ. ແທນທີ່ຈະ, ມັນຈະກັບຄືນມາ
script ໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນ.

o cmdhead(string h)
ຫນ້າທີ່ຜູ້ຊ່ວຍຂອງ exec() (ເບິ່ງຂ້າງລຸ່ມນີ້ຢູ່ທີ່ exec()): ກໍານົດເປັນ 'ຫົວຄໍາສັ່ງ', to
ຖືກນໍາໃຊ້ກັບ exec(). ໂດຍຄ່າເລີ່ມຕົ້ນ, 'ຫົວຄໍາສັ່ງ' ແມ່ນສາຍທີ່ຫວ່າງເປົ່າ.

o cmdtail(string t)
ຫນ້າທີ່ຜູ້ຊ່ວຍຂອງ exec() (ເບິ່ງຂ້າງລຸ່ມນີ້ຢູ່ທີ່ exec()): ກໍານົດເປັນ 'ຫາງຄໍາສັ່ງ', to
ຖືກນໍາໃຊ້ກັບ exec(). ໂດຍຄ່າເລີ່ມຕົ້ນ, 'ຫາງຄໍາສັ່ງ' ແມ່ນສາຍທີ່ຫວ່າງເປົ່າ.

o echo(int ເລືອກ)
ການ​ຄວບ​ຄຸມ echoing ຂອງ​ໂຄງ​ການ​ທີ່​ເອີ້ນ​ວ່າ (ແລະ​ການ​ໂຕ້​ຖຽງ​ຂອງ​ເຂົາ​ເຈົ້າ​)​, ລະ​ບຸ​ OFF ຖ້າສຽງດັງ
ບໍ່ໄດ້ຮ້ອງຂໍ. ໂດຍຄ່າເລີ່ມຕົ້ນ ສຽງສະທ້ອນ(ON) ຖືກນໍາໃຊ້.

o string ອົງປະກອບ(int ດັດສະນີ, ບັນຊີລາຍຊື່ (ຫຼື ສະຕຣິງ) var)
ປະຕິບັດຄືກັນກັບຕົວປະຕິບັດການດັດສະນີ: ອ້າງອີງໃສ່ດັດຊະນີ ([]) ປະ​ຕິ​ບັດ​ການ​ໃນ​
ສ່ວນ ຜູ້ປະກອບການ.

o ບັນຊີລາຍຊື່ eval(string str)
ຟັງຊັນນີ້ປະຕິບັດຄືກັນກັບຕົວປະຕິບັດການ backtick. ຕົວຢ່າງທີ່ສະຫນອງໃຫ້
ດັ່ງນັ້ນຕົວປະຕິບັດການ backtick ສາມາດຖືກຂຽນໄວ້ເຊັ່ນນີ້:

printf(eval("ls")); // ພິມອົງປະກອບໃນປະຈຸບັນ
// ໄດເລກະທໍລີ

o exec(string cmd, ... )
ປະຕິບັດຄໍາສັ່ງດ້ວຍການໂຕ້ຖຽງ. ແຕ່ລະອາກິວເມັນຈະຖືກນຳໜ້າດ້ວຍ Arghead()'s
argument ແລະ postfixed ໂດຍ ຫາງ()ການໂຕ້ຖຽງຂອງ. ໃຫ້ສັງເກດວ່າບໍ່ມີການໃສ່ຊ່ອງຫວ່າງ
ລະຫວ່າງ Arghead()ເນື້ອໃນຂອງ, ການໂຕ້ຖຽງທີ່ເຫມາະສົມ, ແລະ ຫາງ()ການໂຕ້ຖຽງຂອງ. ທັງໝົດ
ດັ່ງນັ້ນການໂຕ້ຖຽງທີ່ຖືກດັດແປງແມ່ນ concatenated, ເວລານີ້ແຍກອອກໂດຍຊ່ອງຫວ່າງດຽວ, ແລະ
ຫຼັງຈາກນັ້ນ cmdhead()ເນື້ອໃນຂອງຖືກໃສ່ລະຫວ່າງຄໍາສັ່ງແລະການໂຕ້ຖຽງທໍາອິດ
(ຢູ່ດ້ານໃດດ້ານໜຶ່ງທີ່ຂັ້ນດ້ວຍຊ່ອງຫວ່າງດຽວ) ແລະ cmdtail()ເນື້ອໃນຂອງແມ່ນໄດ້ຕໍ່ທ້າຍ
ການໂຕ້ຖຽງ (ອີກເທື່ອຫນຶ່ງ, ແຍກອອກໂດຍຫວ່າງເປົ່າ). PATH ຖືກຄົ້ນຫາເພື່ອຊອກຫາສະຖານທີ່
cmd. 0 ຖືກສົ່ງຄືນ.

o exec(int checkcmd, string cmd, ... )
ຫນ້າທີ່ດຽວກັນກັບຫນ້າທີ່ທີ່ຜ່ານມາ, ແຕ່ໂດຍການລະບຸ ການກວດສອບ as
ບໍ່ໄດ້ກວດເບິ່ງ ຟັງຊັນຈະບໍ່ຢຸດສະຄຣິບ. ແທນທີ່ຈະ, ມັນຈະກັບຄືນມາ
ເອີ້ນວ່າສະຖານະການອອກຄໍາສັ່ງ, ຫຼື 0x7f00 ຖ້າບໍ່ພົບຄໍາສັ່ງ.

o execute(string cmd, string cmdhd, string Arghd, ..., string argtl, string cmdtl)
ຄື​ກັນ​ກັບ exec(), ແຕ່ຕ້ອງລະບຸຫົວ/ຫາງ ແລະຫົວ/ຫາງ argument.

ຄໍາສັ່ງປະຕິບັດຕົວຈິງເລີ່ມຕົ້ນດ້ວຍ cmd, ຕາມດ້ວຍ cmdhd. ຕໍ່ໄປແມ່ນຊຸດ
ຂອງການໂຕ້ຖຽງດັ່ງຕໍ່ໄປນີ້, ແຕ່ລະປິດລ້ອມໂດຍ arghd ແລະ argtl. ຄໍາສັ່ງສິ້ນສຸດລົງດ້ວຍ
cmdtl. 0 ຖືກສົ່ງຄືນ

o ປະຕິບັດ(int ການ​ກວດ​ສອບ​, string cmd, string cmdhd, string Arghd, ..., string argtl,
string cmdtl)
ຫນ້າທີ່ດຽວກັນກັບຫນ້າທີ່ທີ່ຜ່ານມາ, ແຕ່ໂດຍການລະບຸ ການກວດສອບ as
ບໍ່ໄດ້ກວດເບິ່ງ ຟັງຊັນຈະບໍ່ຢຸດສະຄຣິບ. ແທນທີ່ຈະ, ມັນຈະກັບຄືນມາ
ເອີ້ນວ່າສະຖານະການອອກຄໍາສັ່ງ, ຫຼື 0x7f00 ຖ້າບໍ່ພົບຄໍາສັ່ງ.

o int ມີຢູ່(string ແຟ້ມ)
ຕອບຄ່າທີ່ບໍ່ແມ່ນສູນ if ເອກະສານ ມີຢູ່, ຖ້າບໍ່ດັ່ງນັ້ນ 0 ຖືກສົ່ງຄືນ.

o ບັນຊີລາຍຊື່ fgets(string ແຟ້ມ, ບັນຊີລາຍຊື່ ຊົດເຊີຍ)
ຫມາຍ​ເຫດ​: in icmake ຮຸ່ນ 8.00.00 ຕົ້ນແບບຂອງຟັງຊັນນີ້ຖືກປ່ຽນຈາກ
ບັນຊີລາຍຊື່ fgets(string ແຟ້ມ, int ຊົດເຊີຍ) to ບັນຊີລາຍຊື່ fgets(string ແຟ້ມ, ບັນຊີລາຍຊື່ ຊົດເຊີຍ).

ແຖວຕໍ່ໄປທີ່ພົບເຫັນຢູ່ໃນ offset ທີ່ມີຢູ່ໃນ ຊົດເຊີຍ ແມ່ນອ່ານຈາກ ເອກະສານ. ຜ່ານ
ບັນຊີລາຍຊື່ຫວ່າງເປົ່າກັບ fgets ອ່ານ ເອກະສານ ຕັ້ງແຕ່ເລີ່ມຕົ້ນ.

ມັນສົ່ງຄືນບັນຊີລາຍຊື່ທີ່ບັນຈຸເປັນອົງປະກອບທໍາອິດຂອງມັນເນື້ອໃນຂອງແຖວທີ່ອ່ານ
(ໂດຍບໍ່ມີການ \n line terminator), ເປັນອົງປະກອບທີສອງຂອງມັນ terminator ຂອງສາຍ `\n'
(ຖ້າພົບ), ແລະເປັນອົງປະກອບທີສາມຂອງມັນ string OK ຖ້າເສັ້ນໄດ້ສໍາເລັດ
ອ່ານ, ປະຕິບັດ ຖ້າການອ່ານຈາກໄຟລ໌ລົ້ມເຫລວ. ເມື່ອອ່ານຢູ່ EOF ບັນຊີລາຍຊື່ເປົ່າແມ່ນ
ກັບຄືນ. ບັນຊີລາຍຊື່ທີ່ສົ່ງຄືນອາດຈະປະກອບດ້ວຍອົງປະກອບເພີ່ມເຕີມ, ເຊິ່ງແມ່ນພາຍໃນ
ໃຊ້ໂດຍ fgets ເມື່ອອ່ານແຖວຕໍ່ໄປ.

ເພື່ອອ່ານຫຼາຍແຖວ, ເລີ່ມຕົ້ນໂດຍການຖ່າຍທອດບັນຊີລາຍຊື່ເປົ່າເປັນ ໄດ້​ຮັບ ການໂຕ້ຖຽງທີສອງ.
ເພື່ອອ່ານແຖວຕໍ່ໄປ, ໃຫ້ຜ່ານບັນຊີລາຍຊື່ທີ່ສົ່ງຄືນກ່ອນຫນ້ານີ້ໄປຫາ fgets ຂອງ ຄັ້ງທີສອງ
ການໂຕ້ຖຽງ.

ນີ້ແມ່ນຕົວຢ່າງທີ່ສະແດງໃຫ້ເຫັນວິທີການອ່ານໄຟລ໌ທີ່ສົມບູນ:

ລາຍການ ret;
ໃນຂະນະທີ່ (1)
{
ret = fgets("ຊື່ໄຟລ໌", ret);
ຖ້າ (!ret)
ທໍາລາຍ;
ຂະບວນການ(ret[0], ret[1]);
}

o int fprintf(string ຊື່​ເອ​ກະ​ສານ, ... )
ຕື່ມຂໍ້ມູນທັງໝົດ (ໝາຍຈຸດທີ່ແຍກອອກ) ຕໍ່ທ້າຍກັບໄຟລ໌ ຊື່​ເອ​ກະ​ສານ. ຕອບຈໍານວນ
ການໂຕ້ຖຽງທີ່ພິມອອກ.

o int fprintf(string ຊື່​ເອ​ກະ​ສານ, string ຮູບແບບ, ... )
ຕື່ມຂໍ້ມູນທັງໝົດ (ໝາຍຈຸດທີ່ແຍກອອກ) ຕໍ່ທ້າຍກັບໄຟລ໌ ຊື່​ເອ​ກະ​ສານ. ຕອບຈໍານວນ
ການໂຕ້ຖຽງທີ່ພິມອອກ.

If ຮູບແບບ ປະກອບມີຕົວຍຶດ %1 .. %n ຜົນຜະລິດຖືກຈັດຮູບແບບ (ເບິ່ງ
ຮູບແບບ). ໃຫ້ສັງເກດວ່າໃນກໍລະນີນີ້ການນັບການໂຕ້ຖຽງ (ຍັງ) ເລີ່ມຕົ້ນນອກເຫນືອຈາກ
format string: argument ທໍາອິດຕໍ່ໄປນີ້ ຮູບແບບ ແມ່ນຫມາຍເຖິງ %1.

o string get_base(string ແຟ້ມ)
ຕອບຊື່ພື້ນຖານຂອງ ເອກະສານ. ຊື່ພື້ນຖານແມ່ນໄຟລ໌ທີ່ບໍ່ມີຄໍານໍາຫນ້າເສັ້ນທາງຂອງມັນ
ແລະໂດຍບໍ່ມີການຂະຫຍາຍຂອງມັນ. ການຂະຫຍາຍແມ່ນຂໍ້ມູນທັງຫມົດເລີ່ມຕົ້ນໃນຕອນສຸດທ້າຍ
ຈຸດໃນຊື່ໄຟລ໌. ຖ້າບໍ່ພົບຈຸດສຸດທ້າຍ, ຊື່ໄຟລ໌ແມ່ນຊື່ພື້ນຖານ.
ຕົວຢ່າງ, ຊື່ພື້ນຖານຂອງ ab ເທົ່າກັນ a, ຊື່ພື້ນຖານຂອງ abc ເທົ່າກັນ ab, ຖານ
ຊື່ຂອງ a/b/c ເທົ່າກັນ c.

o string getch()
ສົ່ງຄືນປຸ່ມກົດຕໍ່ໄປເປັນສະຕຣິງ (ການກົດ 'Enter' ແມ່ນບໍ່ຈໍາເປັນ).

o string get_dext(string ແຟ້ມ)
ສົ່ງຄືນສ່ວນຂະຫຍາຍຂອງ ເອກະສານ, ລວມທັງຈຸດແຍກ. ການຂະຫຍາຍແມ່ນທັງຫມົດ
ຂໍ້ມູນເລີ່ມຕົ້ນຈາກຈຸດສຸດທ້າຍຂອງຊື່ໄຟລ໌.

ຖ້າບໍ່ພົບຈຸດສຸດທ້າຍ, ສະຕຣິງຫວ່າງເປົ່າຈະຖືກສົ່ງຄືນ.

o ບັນຊີລາຍຊື່ getenv(string envvar)
ຕອບຄ່າຂອງຕົວແປສະພາບແວດລ້ອມ envvar ໃນ​ລາຍ​ການ​ທີ່​ມີ​ສອງ​ອົງ​ປະ​ກອບ​:

ອົງປະກອບທໍາອິດຊີ້ໃຫ້ເຫັນວ່າຕົວແປສະພາບແວດລ້ອມໄດ້ຖືກກໍານົດ (ຄ່າ
"1") ຫຼື​ບໍ່ (ຄ່າ "0");
ອົງປະກອບທີສອງຊີ້ໃຫ້ເຫັນມູນຄ່າຂອງຕົວແປສະພາບແວດລ້ອມ.

ຕົວແປສະພາບແວດລ້ອມມີຮູບແບບ variable=ຄ່າ, ແລະຖ້າຫາກວ່າກໍານົດບັນຊີລາຍຊື່ຂອງ
ອົງປະກອບທີສອງປະກອບດ້ວຍ ມູນຄ່າ. ຖ້າຄ່າຫວ່າງເປົ່າ, ຕົວແປແມ່ນຖືກກໍານົດ, ແຕ່
ບໍ່ມີຂໍ້ຄວາມທີ່ກ່ຽວຂ້ອງກັບມັນ.

o string get_ext(string ແຟ້ມ)
ສົ່ງຄືນສ່ວນຂະຫຍາຍຂອງ ເອກະສານ, ຍົກເວັ້ນຈຸດທີ່ແຍກອອກ. ການຂະຫຍາຍແມ່ນທັງຫມົດ
ຂໍ້ມູນເລີ່ມຕົ້ນຈາກຈຸດສຸດທ້າຍໃນຊື່ໄຟລ໌.

ຖ້າບໍ່ພົບຈຸດສຸດທ້າຍ, ສະຕຣິງຫວ່າງເປົ່າຈະຖືກສົ່ງຄືນ.

o int getpid()
ສົ່ງຄືນ process-id ຂອງຕົວແປລະຫັດ icmake byte icm-exec.

o string ໄດ້ຮັບ ()
ສົ່ງຄືນແຖວຕໍ່ໄປທີ່ອ່ານຈາກແປ້ນພິມເປັນ a string. ເສັ້ນທີ່ເຂົ້າມາໃນ
ແປ້ນພິມຕ້ອງຖືກຢຸດໂດຍກະແຈ 'Enter', ເຊິ່ງບໍ່ໄດ້ເກັບຮັກສາໄວ້ໃນການສົ່ງຄືນ
string

o string get_path(string ແຟ້ມ)
ໃຫ້ຜົນເປັນ path-prefix ຂອງ ເອກະສານ. ຄໍານໍາຫນ້າເສັ້ນທາງແມ່ນຂໍ້ມູນທັງຫມົດເຖິງ (ແລະ
ລວມເຖິງ) ຕົວແຍກໄດເລກະທໍລີສຸດທ້າຍ (ຊຶ່ງແມ່ນ, ຂຶ້ນກັບການດໍາເນີນງານ
ລະບົບ, ເປັນ forward- ຫຼື backslash).

ຖ້າບໍ່ພົບເສັ້ນທາງ, ເສັ້ນຫວ່າງເປົ່າຈະຖືກສົ່ງຄືນ.

o int listfind(ລາຍການ ທຳອິດ, string str)
ສົ່ງຄືນດັດຊະນີທຳອິດໃນ ອັນດັບທີ ບ່ອນທີ່ຊ່ອຍແນ່ str ຖືກພົບເຫັນ, ຫຼື -1 ຖ້າ ອັນດັບທີ ບໍ່
ບັນຈຸ str.

o int listlen(ລາຍການ l)
ຕອບຈໍານວນອົງປະກອບໃນ ບັນຊີລາຍຊື່.

o ບັນຊີລາຍຊື່ listunion(ລາຍການ lhs, ບັນຊີລາຍຊື່ rhs)
ສົ່ງຄືນລາຍຊື່ທີ່ປະກອບດ້ວຍສະຫະພັນຂອງອົງປະກອບໃນ lhs ແລະ rhs.

o ບັນຊີລາຍຊື່ listunion(ລາຍການ ທຳອິດ, string str)
ສົ່ງຄືນລາຍຊື່ທີ່ປະກອບດ້ວຍສະຫະພັນຂອງອົງປະກອບໃນ ອັນດັບທີ ແລະ str.

o ບັນຊີລາຍຊື່ makelist(string ຫນ້າ​ກາກ)
ສົ່ງຄືນລາຍຊື່ຂອງໄຟລ໌ທັງໝົດທີ່ກົງກັນ ຫນ້າກາກ. ຕົວຢ່າງ: ລາຍຊື່ຜູ້ສ້າງ("*.c") ສົ່ງຄືນລາຍຊື່
ມີໄຟລ໌ທັງໝົດທີ່ລົງທ້າຍດ້ວຍ .c.

o ບັນຊີລາຍຊື່ makelist(ປະ​ເພດ​, string ຫນ້າ​ກາກ)
ຄືກັນກັບຫນ້າທີ່ທີ່ຜ່ານມາ, ແຕ່ປະເພດຂອງອົງປະກອບຂອງໄດເລກະທໍລີອາດຈະເປັນ
ລະບຸເປັນການໂຕ້ຖຽງທຳອິດຂອງມັນ:

ຄວາມ ໝາຍ ສັນຍາລັກ
IS_ALL ໄດ້ຮັບລາຍການໄດເລກະທໍລີທັງໝົດ
IS_DIR ຮັບເອົາໄດເລກະທໍລີທັງໝົດ, ລວມທັງ . ແລະ..
IS_FILE ໄດ້ຮັບບັນຊີລາຍຊື່ຂອງໄຟລ໌
IS_SUBDIR ຮັບເອົາໄດເລກະທໍລີຍ່ອຍທັງໝົດ

ໃຫ້ສັງເກດວ່າຮູບແບບ * ຈະບໍ່ກົງກັບລາຍການທີ່ເຊື່ອງໄວ້ພາຍໃຕ້ການດໍາເນີນການປະເພດ Unix
ລະບົບ. ໃຊ້ .* ສໍາລັບວ່າ.

o ບັນຊີລາຍຊື່ makelist(string ຫນ້າ​ກາກ, ໃໝ່ກວ່າ, string ໄຟລ໌ປຽບທຽບ)
ສົ່ງຄືນລາຍຊື່ຂອງໄຟລ໌ທັງໝົດທີ່ກົງກັບໜ້າກາກທີ່ໃໝ່ກວ່າທີ່ສະໜອງໃຫ້
ປຽບທຽບໄຟລ໌. ຜູ້ປະກອບການ younger ອາດຈະຖືກນໍາໃຊ້ແທນ ໃຫມ່ກວ່າ. ໃຫ້ສັງເກດວ່າ ໃຫມ່ກວ່າ ແລະ
younger ແມ່ນຕົວປະຕິບັດການ, ບໍ່ແມ່ນສາຍ.

o ບັນຊີລາຍຊື່ makelist([int = IS_FILE,] string ຫນ້າ​ກາກ, ໃໝ່ກວ່າ, string ໄຟລ໌ປຽບທຽບ)
ຄືກັນກັບຫນ້າທີ່ທີ່ຜ່ານມາ, ແຕ່ ປະເພດ ອາດຈະຖືກລະບຸໄວ້ໃນ ບັນຊີລາຍຊື່ makelist(ປະ​ເພດ​,
string ຫນ້າ​ກາກ).

o makelist(string ຫນ້າ​ກາກ, ແກ່, string ໄຟລ໌ປຽບທຽບ)
ເບິ່ງ​ຢູ່​ຂ້າງ​ເທິງ; ສົ່ງຄືນລາຍຊື່ຂອງໄຟລ໌ທີ່ເກົ່າກວ່າທີ່ປຽບທຽບໄຟລ໌.

o makelist(ປະ​ເພດ​, string ຫນ້າ​ກາກ, ແກ່, string ໄຟລ໌ປຽບທຽບ)
ຄືກັນກັບຫນ້າທີ່ທີ່ຜ່ານມາ, ແຕ່ ປະເພດ ອາດຈະຖືກລະບຸໄວ້ໃນ ບັນຊີລາຍຊື່ makelist(ປະ​ເພດ​,
string ຫນ້າ​ກາກ).

o int printf(... )
ສະແດງອາກິວເມັນທັງໝົດ (ໝາຍຈຸດທີ່ແຍກອອກ) ໃສ່ໜ້າຈໍ (ເຊັ່ນ: ສະຕຣີມຜົນຜະລິດມາດຕະຖານ).
ຕອບຈໍານວນອາກິວເມັນທີ່ພິມອອກ.

o int printf(string ຮູບແບບ, ... )
ສະແດງອາກິວເມັນທັງໝົດ (ໝາຍຈຸດທີ່ແຍກອອກ) ໃສ່ໜ້າຈໍ (ເຊັ່ນ: ສະຕຣີມຜົນຜະລິດມາດຕະຖານ).
ຕອບຈຳນວນຂອງອາກິວເມັນທີ່ພິມອອກ (the ຮູບແບບ string ນັບເປັນຫນຶ່ງ argument).

If ຮູບແບບ ປະກອບມີຕົວຍຶດ %1 .. %n ຜົນຜະລິດຖືກຈັດຮູບແບບ (ເບິ່ງ
ຮູບແບບ).

o int putenv(string envvar)
Adds envvar ກັບ​ປະ​ຈຸ​ບັນ (icmake) ສະພາບແວດລ້ອມໃຊ້ຮູບແບບ: "VAR=value".
ກັບຄືນ 0.

o string ປັບຂະໜາດ(string str, int ຄວາມຍາວໃຫມ່) ສົ່ງຄືນສຳເນົາຂອງສະຕຣິງ str, ປັບຂະຫນາດເປັນ
ຄວາມຍາວໃຫມ່ ຕົວລະຄອນ. ຖ້າ ຄວາມຍາວໃຫມ່ ເປັນຄ່າລົບ ຈາກນັ້ນສະຕຣິງຫວ່າງເປົ່າຈະຖືກສົ່ງຄືນ,
if ຄວາມຍາວໃຫມ່ ເກີນໄປ str's ຄວາມຍາວຫຼັງຈາກນັ້ນຕົວອັກສອນທີ່ເພີ່ມໃຫມ່ຈະຖືກເລີ່ມຕົ້ນ
ຊ່ອງຫວ່າງ.

o int ຂະຫນາດຂອງ (ບັນຊີລາຍຊື່ l)
ຄັດຄ້ານ: ໃຊ້ ຟັງ.

o int sizeoflist(ບັນຊີລາຍຊື່ l)
ຄັດຄ້ານ: ໃຊ້ ຟັງ.

o ບັນຊີລາຍຊື່ stat(string ເຂົ້າ)
ຜົນຕອບແທນ ລັດ(2​) ຂໍ້​ມູນ​ຂອງ​ການ​ເຂົ້າ​ລະ​ບົບ​ entry ເປັນບັນຊີລາຍຊື່. ບັນຊີລາຍຊື່ກັບຄືນ
ມີສອງອົງປະກອບ: ອົງປະກອບ 0 ແມ່ນ ຄຸນລັກສະນະ ມູນຄ່າ, ອົງປະກອບ 1 ມີຂະຫນາດຂອງ
ໄຟລ໌.

ຄຸນ​ລັກ​ສະ​ນະ​ແມ່ນ​ໄດ້​ຮັບ​ການ​ສົ່ງ​ຄືນ​ເປັນ bit-flags​, ປະ​ກອບ​ຈາກ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ກໍາ​ນົດ​ໄວ້​ລ່ວງ​ຫນ້າ​
ຄົງທີ່:

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_IWRITE S_IEXEC

ເບິ່ງ ລັດ(2) ຫນ້າຄູ່ມືສໍາລັບຄວາມຫມາຍຂອງຄ່າຄົງທີ່ເຫຼົ່ານີ້.

o ບັນຊີລາຍຊື່ ສະ​ຖິ​ຕິ (ກວດ​ສອບ​, string ເຂົ້າ)
ຄືກັນກັບຫນ້າທີ່ທີ່ຜ່ານມາ, ແຕ່ໂດຍການລະບຸ ການກວດສອບ as P_NOCHEC ໜ້າ ທີ່
ຈະບໍ່ຢຸດສະຄຣິບ. ແທນທີ່ຈະ, ມັນກັບຄືນມາ ລັດ(2) ຄ່າກັບຄືນຂອງ.

o int strhr(string str, string ຕົວອັກສອນ)
ສົ່ງຄືນດັດຊະນີທຳອິດໃນ str ບ່ອນທີ່ຕົວລະຄອນໃດຢູ່ໃນ ຖັງ ພົບເຫັນ, ຫຼື -1
if str ບໍ່ມີຕົວອັກສອນໃດໆໃນ ຖັງ.

o int strlen(string str)
ຕອບຈໍານວນຕົວອັກສອນໃນ str (ບໍ່ນັບ 0 ສຸດທ້າຍ).

o int strfind(string ເຟືອງ, string ເຂັມ)
ສົ່ງຄືນດັດຊະນີໃນ ຫິມະ ບ່ອນທີ່ ເຂັມ ຖືກພົບເຫັນ, ຫຼື -1 ຖ້າ ເຂັມ ບໍ່ໄດ້ບັນຈຸ
in ຫິມະ.
ນີ້ ຫນ້າທີ່ ແມ່ນ ເອີ້ນວ່າ strstr() in ສະບັບ ກ່ອນທີ່ຈະ 7.00.

o int ຮູບແບບສະຕຣິງ(string ຮູບ​ແບບ​, ... )
ຕອບສະຕຣິງທີ່ມີຮູບແບບໂດຍໃຊ້ຕົວຍຶດ %1 .. %2 ເພື່ອແກ້ໄຂອາກິວເມັນ
ຮູບ​ແບບ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​.
ຕົວຢ່າງ:

void ຫລັກ ()
{
int i = 10;
int j = 20;
string s1;
string s2;
// ວິທີການແບບດັ້ງເດີມ:
s1 = (string)i + "" + (string)j + "" + (string)i;
// ການ​ນໍາ​ໃຊ້ strformat​:
s2 = strformat("%1 %2 %1",i,j);
printf("s1 = %1, s2 = %2\n", s1, s2);
}

o string strlwr(ສະຕຣິງ s)
ໃຫ້ຜົນເປັນຕົວພິມນ້ອຍຊໍ້າກັນຂອງ s.

o ບັນຊີລາຍຊື່ strtok(ສະຕຣິງ str, string ຕົວແຍກ)
ສົ່ງຄືນລາຍຊື່ທີ່ມີສາຍຍ່ອຍທັງໝົດຂອງ str ແຍກໂດຍຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ
(ຕິດຕໍ່ກັນ) ຕົວອັກສອນໃນ ຕົວຂັ້ນ. ຕົວຢ່າງ: strtok("ສະບາຍດີ icmake's + ໂລກ", " +")
ສົ່ງຄືນລາຍຊື່ທີ່ມີສາມສະຕຣິງ "ສະບາຍດີ", "icmake ຂອງ", ແລະ "ໂລກ".

o string strupr(string s)
ຕອບຕົວພິມໃຫຍ່ຊໍ້າກັນຂອງ s.

o string substr(string ຂໍ້​ຄວາມ, int ຊົດເຊີຍ, int ນັບ)
ຕອບສະຕຣິງຍ່ອຍຂອງ ຂໍ້ຄວາມ, ເລີ່ມຕົ້ນຢູ່ ຊົດເຊີຍ, ປະກອບດ້ວຍ ນັບ ຕົວລະຄອນ. ຖ້າ
ຊົດເຊີຍ ເກີນ (ຫຼືເທົ່າກັບ) ຂະໜາດຂອງສະຕຣິງ ຫຼືຖ້າ ນັບ <= 0, ຫຼັງຈາກນັ້ນເປັນ string ເປົ່າ
ຖືກສົ່ງຄືນ. ຖ້າ ຊົດເຊີຍ ແມ່ນຫນ້ອຍກວ່າ 0 ຫຼັງຈາກນັ້ນ 0 ຖືກນໍາໃຊ້.

o int ລະບົບ(string ຄໍາສັ່ງ)
ການປະຕິບັດ ຄໍາສັ່ງ. ຄ່າກັບຄືນສະແດງເຖິງຄ່າອອກຂອງຄໍາສັ່ງທີ່ຖືກປະຕິບັດ. ໄດ້
string ຄໍາສັ່ງ ອາດຈະມີການປ່ຽນເສັ້ນທາງ ແລະ/ຫຼື ລັກສະນະທໍ່.

o int ລະບົບ(int ການ​ກວດ​ສອບ​, string ຄໍາສັ່ງ)
ຫນ້າທີ່ດຽວກັນກັບຫນ້າທີ່ທີ່ຜ່ານມາ, ແຕ່ໂດຍການລະບຸ ການກວດສອບ as
ບໍ່ໄດ້ກວດເບິ່ງ ຟັງຊັນຈະບໍ່ຢຸດສະຄຣິບ. ແທນທີ່ຈະ, ມັນຈະກັບຄືນມາ
ເອີ້ນວ່າສະຖານະການອອກຄໍາສັ່ງ, ຫຼື 0x7f00 ຖ້າບໍ່ພົບຄໍາສັ່ງ.

o string trim(string s)
ສົ່ງຄືນສຳເນົາຂອງ s ໂດຍບໍ່ມີການນໍາພາແລະຕິດຕາມສະຖານທີ່ສີຂາວ.

o string trimleft(string str)
ສົ່ງຄືນສຳເນົາຂອງ s ໂດຍບໍ່ມີພື້ນທີ່ສີຂາວນໍາ.

o string trim(string s)
ສົ່ງຄືນສຳເນົາຂອງ s ໂດຍບໍ່ມີການຕິດຕາມຊ່ອງຫວ່າງສີຂາວ.

ຜູ້ໃຊ້ ກໍານົດ FUNCTIONS


void ຕົ້ນຕໍ

Icmake scripts ຕ້ອງໄດ້ຮັບການສະຫນອງດ້ວຍຟັງຊັນທີ່ຜູ້ໃຊ້ກໍານົດ ຕົ້ນຕໍ. ໜ້າ ທີ່ ຕົ້ນຕໍ ມີ
ສາມຕົວກໍານົດທາງເລືອກ, ເຊິ່ງອາດຈະຖືກຍົກເວັ້ນຈາກອັນສຸດທ້າຍ (envp) ກັບ​ຄັ້ງ​ທໍາ​ອິດ​
(ໂຕ້ຖຽງ), ເຊັ່ນ​ດຽວ​ກັນ​ກັບ​ C. ຕົ້ນແບບເຕັມຮູບແບບຂອງມັນແມ່ນ (ໝາຍເຫດ: void ປະເພດກັບຄືນ):

void main(int argc, list argv, list envp)

In ຕົ້ນຕໍ (),

o ໂຕ້ຖຽງ ເປັນຕົວແທນຈໍານວນຂອງອົງປະກອບໃນ argv;

o argv ປະກອບດ້ວຍອາກິວເມັນ, ດ້ວຍອົງປະກອບ 0 ເທົ່າກັບຊື່ຂອງ .bim
ແຟ້ມ;

o envp ມີຕົວແປ 'ສະພາບແວດລ້ອມ'. ຫນ້າທີ່ ຟັງ ສາມາດຖືກນໍາໃຊ້ເພື່ອ
ກໍານົດຈໍານວນຂອງອົງປະກອບຂອງມັນ. ອົງປະກອບໃນ envp ມີແບບຟອມ
variable=ຄ່າ. ອີກທາງເລືອກ, ຫນ້າທີ່ getenv ສາມາດໃຊ້ເພື່ອດຶງຂໍ້ມູນ a
ສະພາບແວດລ້ອມສະເພາະຕົວປ່ຽນແປງທັນທີ. ຕົວຢ່າງ:

void main(int argc, list argv)
{
ບັນຊີລາຍຊື່ທີ່ຈະລວບລວມ;
int idx;

ຖ້າ (argc == 1)
ການນໍາໃຊ້(ອົງປະກອບ(0, argv));

ຖ້າ (toCompile = ປ່ຽນແປງ("*.cc"))
{
ສໍາລັບ (idx = length(toCompile); idx--; )
compile(ອົງປະກອບ(idx, toCompile));

ຖ້າ (getenv("dryrun")[0] == "0")
linking(ອົງປະກອບ(2, argv));
}
}

ມີການເລີ່ມຕົ້ນຕົວແປທົ່ວໂລກທັງໝົດຕາມລໍາດັບຂອງຄໍານິຍາມຂອງມັນ ຕົ້ນຕໍ ຖືກເອີ້ນໂດຍ
icmakeລະບົບສະຫນັບສະຫນູນເວລາແລ່ນຂອງເພື່ອປະຕິບັດວຽກງານເພີ່ມເຕີມ.

ນອກຈາກນັ້ນ, ກໍານົດໄວ້ ຜູ້ໃຊ້ ຫນ້າທີ່

ຟັງຊັນເພີ່ມເຕີມອາດຈະຖືກກໍານົດ. ເມື່ອກໍານົດ, ຫນ້າທີ່ເຫຼົ່ານີ້ສາມາດຖືກເອີ້ນວ່າ. ສົ່ງຕໍ່
ບໍ່ຮອງຮັບການອ້າງອີງຕົວແປ ຫຼືຟັງຊັນຕ່າງໆ, ແຕ່ການໂທຊ້ຳໆ
ຫນ້າ​ທີ່​ແມ່ນ​. ໃນຖານະເປັນການປະກາດຫນ້າທີ່ບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນ recursion ທາງອ້ອມແມ່ນບໍ່
ສະ​ຫນັບ​ສະ​ຫນູນ​ທັງ​ຫມົດ​.

ຟັງຊັນທີ່ຜູ້ໃຊ້ກໍານົດຕ້ອງມີອົງປະກອບດັ່ງຕໍ່ໄປນີ້:

o ປະເພດຜົນຕອບແທນຂອງຟັງຊັນ, ເຊິ່ງຈະຕ້ອງເປັນຫນຶ່ງໃນ ຫວ່າງ​ເປົ່າ​, int, string or ບັນຊີລາຍຊື່ທີ່ຢູ່ ມີ
ບໍ່ແມ່ນປະເພດເລີ່ມຕົ້ນ.

o ຊື່ຂອງຟັງຊັນ, ຕົວຢ່າງ, ລວບລວມ.

o ບັນຊີລາຍຊື່ພາລາມິເຕີ, ກໍານົດສູນ ຫຼືຫຼາຍຕົວກໍານົດການທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ. ຕົວກໍານົດການ
ຕົວຂອງມັນເອງປະກອບດ້ວຍຊື່ປະເພດ (int, string, ຫຼື ບັນຊີລາຍຊື່) ປະ​ຕິ​ບັດ​ຕາມ​ໂດຍ​
ຕົວລະບຸຕົວກໍານົດການ. ຕົວຢ່າງ: (ສາຍ outfile, string ແຫຼ່ງຂໍ້ມູນ).

o A ຮ່າງກາຍ ອ້ອມຮອບດ້ວຍວົງເລັບ curly ຄູ່ ({ ແລະ }).

ອົງການຟັງຊັນອາດມີຄໍານິຍາມຕົວແປ (ທາງເລືອກເບື້ອງຕົ້ນ). ຕົວແປ
ຄໍານິຍາມເລີ່ມຕົ້ນດ້ວຍຊື່ປະເພດ, ຕາມດ້ວຍເຄື່ອງໝາຍຈຸດໜຶ່ງ ຫຼືຫຼາຍອັນທີ່ແຍກກັນ (ເລືອກໄດ້
initialized) ຕົວລະບຸຕົວແປ. ຖ້າຕົວແປບໍ່ໄດ້ຖືກເລີ່ມຕົ້ນຢ່າງຊັດເຈນ, ມັນແມ່ນ
ເລີ່ມຕົ້ນໂດຍຄ່າເລີ່ມຕົ້ນ. ໂດຍຄ່າເລີ່ມຕົ້ນເປັນ int ຕົວແປແມ່ນເລີ່ມຕົ້ນເປັນ 0, a string is
ເລີ່ມຕົ້ນເປັນສະຕຣິງຫວ່າງເປົ່າ ("") ແລະກ ບັນຊີລາຍຊື່ ໄດ້ຖືກເລີ່ມຕົ້ນເຂົ້າໃນບັນຊີລາຍຊື່ຂອງອົງປະກອບສູນ.

ນອກເໜືອໄປຈາກຄຳນິຍາມທີ່ປ່ຽນແປງໄດ້, ອົງການຈັດຕັ້ງອາດມີຄຳຊີ້ແຈງສູນ ຫຼື ຫຼາຍກວ່ານັ້ນ (cf.
ສ່ວນ ອັດຕາການໄຫລ ການຄວບຄຸມ). ໃຫ້ສັງເກດວ່າຕົວແປອາດຈະຖືກກໍານົດ (ແລະທາງເລືອກໃນການເລີ່ມຕົ້ນ)
ທຸກບ່ອນພາຍໃນຟັງຊັນ, ແລະຍັງຢູ່ໃນ ຖ້າ, ສໍາລັບການ ແລະ ໃນຂະນະທີ່ ຖະແຫຼງການ.

ພຶດຕິ ກຳ ຂອງ icmake-scripts ໃຊ້ຟັງຊັນທີ່ບໍ່ແມ່ນ void ທີ່ບໍ່ສົ່ງຄືນຄ່າບໍ່ແມ່ນ
ກໍານົດ.

ໃຊ້ icmake ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

  • 1
    CMU Sphinx
    CMU Sphinx
    CMUSphinx ເປັນລໍາໂພງເອກະລາດຂະຫນາດໃຫຍ່
    ການຮັບຮູ້ສຽງເວົ້າຢ່າງຕໍ່ເນື່ອງຂອງຄໍາສັບ
    ປ່ອຍອອກມາພາຍໃຕ້ໃບອະນຸຍາດແບບ BSD. ມັນ​ແມ່ນ
    ຍັງເປັນການເກັບກໍາຂອງເຄື່ອງມືແຫຼ່ງເປີດ ...
    ດາວໂຫລດ CMU Sphinx
  • 2
    PyScripter
    PyScripter
    PyScripter ເປັນ Python ແຫຼ່ງເປີດ
    ສະພາບແວດລ້ອມການພັດທະນາແບບປະສົມປະສານ (IDE)
    ສ້າງຂຶ້ນດ້ວຍຄວາມທະເຍີທະຍານທີ່ຈະກາຍເປັນ
    ແຂ່ງຂັນໃນການເຮັດວຽກກັບ
    ການ​ຄ້າ​ຂ້າ​ພະ​ເຈົ້າ ...
    ດາວໂຫລດ PyScripter
  • 3
    ເກົ່າ Feren OS Repositories
    ເກົ່າ Feren OS Repositories
    ນີ້ແມ່ນບ່ອນເກັບມ້ຽນຢ່າງເປັນທາງການສໍາລັບ
    Feren OS. ເພື່ອເພີ່ມອັນຫຼ້າສຸດ, ໃຫ້ແລ່ນ
    ຄໍາສັ່ງນີ້: (16.04-based) echo
    "ເດບ...
    ດາວໂຫລດ Old Feren OS Repositories
  • 4
    OmegaT - multiplatform CAT tool
    OmegaT - multiplatform CAT tool
    OmegaT ເປັນແຫຼ່ງຟຣີ ແລະເປີດ
    Multiplatform Computer Assisted
    ເຄື່ອງ​ມື​ການ​ແປ​ພາ​ສາ​ທີ່​ມີ​ການ​ຈັບ​ຄູ່ fuzzy​,
    ຫນ່ວຍຄວາມຈໍາການແປພາສາ, ຊອກຫາຄໍາສໍາຄັນ,
    ຄໍາ​ສັບ​ປະ​ດາ​, ແລະ tran ...
    ດາວໂຫລດ OmegaT - multiplatform CAT tool
  • 5
    butt (ອອກອາກາດໂດຍໃຊ້ເຄື່ອງມືນີ້)
    butt (ອອກອາກາດໂດຍໃຊ້ເຄື່ອງມືນີ້)
    butt (ອອກອາກາດໂດຍໃຊ້ເຄື່ອງມືນີ້) ເປັນ
    ງ່າຍ​ທີ່​ຈະ​ນໍາ​ໃຊ້​, ເຄື່ອງ​ມື​ນ​້​ໍ​າ OS ຫຼາຍ​. ມັນ
    ສະຫນັບສະຫນູນ ShoutCast ແລະ IceCast ແລະແລ່ນ
    ໃນ Linux, MacOS ແລະ Windows. ຕົ້ນ​ຕໍ pu...
    ດາວໂຫລດ butt (ອອກອາກາດໂດຍໃຊ້ເຄື່ອງມືນີ້)
  • 6
    JavaVi - vi/vim ບັນນາທິການ clone
    JavaVi - vi/vim ບັນນາທິການ clone
    jVi ແມ່ນ clone ບັນນາທິການ vi/vim ສ້າງຂຶ້ນໃນ
    ເທິງສຸດຂອງແພັກເກັດ javax.swing.text.
    ມີໃຫ້ສໍາລັບ NetBeans ແລະ JBuilder. jVi
    ໄດ້ຖືກອອກແບບເພື່ອໄວແລະງ່າຍດາຍ
    ປະສົມປະສານ ...
    ດາວໂຫລດ JavaVi - vi/vim editor clone
  • ເພີ່ມເຕີມ »

Linux ຄຳ ສັ່ງ

Ad