GoGPT Best VPN GoSearch

OnWorks favicon

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

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

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

ໂຄງການ:

NAME


c99 — ລວບລວມບັນດາໂຄງການມາດຕະຖານ C

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


c99 [ທາງເລືອກໃນການ...] ຊື່ເສັ້ນທາງ [[ຊື່ເສັ້ນທາງ] [-I ລະບົບ]
[−ລ ລະບົບ] [−l ຫ້ອງສະຫມຸດ]]...

ລາຍລະອຽດ


ໄດ້ c99 ຜົນປະໂຫຍດແມ່ນການໂຕ້ຕອບກັບລະບົບການລວບລວມມາດຕະຖານ C; ມັນຈະຍອມຮັບ
ລະຫັດແຫຼ່ງທີ່ສອດຄ່ອງກັບມາດຕະຖານ ISO C. ລະບົບແນວຄວາມຄິດປະກອບດ້ວຍ a
compiler ແລະ link editor. ໄຟລ໌ປ້ອນຂໍ້ມູນອ້າງອີງໂດຍ ຊື່ເສັ້ນທາງ ໂຕປະຕິບັດການ ແລະ −l ທາງ​ເລືອກ-
ການໂຕ້ຖຽງຈະຖືກລວບລວມແລະເຊື່ອມໂຍງກັບການຜະລິດໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້. (ມັນບໍ່ໄດ້ຖືກລະບຸ
ການເຊື່ອມຕໍ່ເກີດຂຶ້ນທັງຫມົດພາຍໃນການດໍາເນີນງານຂອງ c99; ການປະຕິບັດບາງຢ່າງອາດຈະ
ຜະລິດວັດຖຸທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂຢ່າງສົມບູນຈົນກ່ວາໄຟລ໌ຈະຖືກປະຕິບັດ.)

ຖ້າ −ຄ ທາງ​ເລືອກ​ແມ່ນ​ໄດ້​ລະ​ບຸ​ໄວ້​, ສໍາ​ລັບ​ການ​ດໍາ​ເນີນ​ການ​ຊື່​ເສັ້ນ​ທາງ​ທັງ​ຫມົດ​ຂອງ​ຮູບ​ແບບ​ ເອກະສານ.c, ໄຟລ​໌​:

$(ຊື່ພື້ນຖານ ຊື່ເສັ້ນທາງ .c).o

ຈະຖືກສ້າງຂື້ນເປັນຜົນມາຈາກການລວບລວມສົບຜົນສໍາເລັດ. ຖ້າ −ຄ ທາງເລືອກບໍ່ແມ່ນ
ລະບຸໄວ້, ມັນບໍ່ໄດ້ຖືກລະບຸວ່າດັ່ງກ່າວ .o ໄຟລ​໌​ໄດ້​ຖືກ​ສ້າງ​ຕັ້ງ​ຂື້ນ​ຫຼື​ລົບ​ສໍາ​ລັບ​ການ​ ເອກະສານ.c
ໂຕປະຕິບັດການ.

ຖ້າບໍ່ມີທາງເລືອກທີ່ປ້ອງກັນການແກ້ໄຂການເຊື່ອມຕໍ່ (ເຊັ່ນ: −ຄ or − ອ), ແລະໄຟລ໌ປ້ອນຂໍ້ມູນທັງໝົດ
ລວບລວມແລະເຊື່ອມຕໍ່ໂດຍບໍ່ມີຂໍ້ຜິດພາດ, ໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້ຜົນຈະຖືກຂຽນຕາມ
ການ −o outfile ທາງເລືອກ (ຖ້າມີ) ຫຼືໄຟລ໌ .

ໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້ຈະຕ້ອງຖືກສ້າງຂື້ນຕາມທີ່ລະບຸໄວ້ໃນ ສ່ວນ 1.1.1.4, ເອກະສານ ອ່ານ, ຂຽນ,
ແລະ ການສ້າງ, ຍົກເວັ້ນວ່າ bits ການອະນຸຍາດໄຟລ໌ຈະຖືກຕັ້ງເປັນ: S_IRWXO | S_IRWXG |
S_IRWXU

ແລະບິດທີ່ລະບຸໄວ້ໂດຍ ໜ້າ ກາກ ຂອງຂະບວນການຕ້ອງໄດ້ຮັບການອະນາໄມ.

OPTIONS


ໄດ້ c99 ຜົນປະໂຫຍດຈະຕ້ອງສອດຄ່ອງກັບປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ສ່ວນ
12.2, ຜົນປະໂຫຍດ syntax ຄູ່ມືແນະນໍາ, ຍົກເວັ້ນວ່າ:

* ທາງ​ເລືອກ​ສາ​ມາດ interspersed ກັບ operands​.

* ຄໍາ​ສັ່ງ​ຂອງ​ການ​ລະ​ບຸ​ −ລ ແລະ −l ທາງ​ເລືອກ​, ແລະ​ຄໍາ​ສັ່ງ​ຂອງ​ການ​ລະ​ບຸ​ −l ທາງເລືອກໃນການ
ດ້ວຍ​ຄວາມ​ເຄົາ​ລົບ ຊື່ເສັ້ນທາງ operands ມີຄວາມສໍາຄັນ.

* ຄໍາຮ້ອງສະຫມັກທີ່ສອດຄ່ອງຈະຕ້ອງລະບຸແຕ່ລະທາງເລືອກແຍກຕ່າງຫາກ; ນັ້ນແມ່ນ, ທາງເລືອກການຈັດກຸ່ມ
ຕົວອັກສອນ (ຕົວຢ່າງ, −cO) ບໍ່ຈໍາເປັນຕ້ອງໄດ້ຮັບການຍອມຮັບໂດຍການປະຕິບັດທັງຫມົດ.

ທາງເລືອກຕໍ່ໄປນີ້ຈະໄດ້ຮັບການສະຫນັບສະຫນູນ:

−ຄ ສະກັດກັ້ນໄລຍະການເຊື່ອມໂຍງ - ດັດແກ້ຂອງການລວບລວມ, ແລະບໍ່ເອົາວັດຖຸໃດໆ
ໄຟລ໌ທີ່ຜະລິດ.

−D ຊື່[=ມູນຄ່າ]
ກໍານົດ ຊື່ ຄືກັບພາສາ C #ກໍານົດ ຄໍາສັ່ງ. ຖ້າບໍ່ມີ =ມູນຄ່າ ແມ່ນໃຫ້, a
ຄ່າຂອງ 1 ຈະຖືກນໍາໃຊ້. ໄດ້ −D ທາງ​ເລືອກ​ມີ​ຄວາມ​ສໍາ​ຄັນ​ຕ​່​ໍ​າ​ກ​່​ວາ​ -U ທາງເລືອກ.
ນັ້ນແມ່ນ, ຖ້າ ຊື່ ຖືກນໍາໃຊ້ໃນທັງສອງ a -U ແລະ −D ທາງເລືອກ, ຊື່ ຈະບໍ່ໄດ້ກໍານົດ
ໂດຍບໍ່ຄໍານຶງເຖິງຄໍາສັ່ງຂອງທາງເລືອກ. ການຈັດຕັ້ງປະຕິບັດເພີ່ມເຕີມ - ກໍານົດ ຊື່s
ອາດຈະສະຫນອງໃຫ້ໂດຍ compiler. ການຈັດຕັ້ງປະຕິບັດຈະສະຫນັບສະຫນູນຢ່າງຫນ້ອຍ 2048
bytes ຂອງ −D ນິຍາມ ແລະ 256 ຊື່.

− ອ ສຳເນົາໄຟລ໌ແຫຼ່ງພາສາ C ໄປຫາຜົນຜະລິດມາດຕະຖານ, ຂະຫຍາຍຕົວປະມວນຜົນກ່ອນທັງໝົດ
ຄຳແນະນຳ; ບໍ່ມີການລວບລວມຂໍ້ມູນຈະຖືກປະຕິບັດ. ຖ້າຕົວປະຕິບັດການໃດໆບໍ່ແມ່ນຂໍ້ຄວາມ
ໄຟລ໌, ຜົນກະທົບແມ່ນບໍ່ໄດ້ລະບຸ.

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

-I ລະບົບ
ປ່ຽນແປງສູດການຄິດໄລ່ສໍາລັບການຄົ້ນຫາ headers ທີ່ມີຊື່ບໍ່ແມ່ນຢ່າງແທ້ຈິງ
pathnames ເພື່ອເບິ່ງຢູ່ໃນໄດເລກະທໍລີທີ່ມີຊື່ໂດຍ ລະບົບ ຊື່ເສັ້ນທາງກ່ອນ
ຊອກຫາຢູ່ໃນສະຖານທີ່ປົກກະຕິ. ດັ່ງນັ້ນ, ຫົວທີ່ມີຊື່ຖືກຫຸ້ມດ້ວຍສອງເທົ່າ.
ວົງຢືມ ("") ຈະ​ຖືກ​ຄົ້ນ​ຫາ​ສໍາ​ລັບ​ການ​ທໍາ​ອິດ​ໃນ​ລະ​ບົບ​ຂອງ​ໄຟລ​໌​ທີ່​ມີ​
#include ແຖວ, ຫຼັງຈາກນັ້ນຢູ່ໃນໄດເລກະທໍລີທີ່ມີຊື່ໃນ -I ທາງເລືອກ, ແລະສຸດທ້າຍໃນປົກກະຕິ
ສະຖານທີ່. ສໍາລັບສ່ວນຫົວທີ່ມີຊື່ຖືກຕິດຢູ່ໃນວົງເລັບມຸມ ("<>"), the
header ຈະຖືກຄົ້ນຫາພຽງແຕ່ຢູ່ໃນໄດເລກະທໍລີທີ່ມີຊື່ໃນ -I ທາງເລືອກແລະຫຼັງຈາກນັ້ນໃນ
ສະຖານທີ່ປົກກະຕິ. ໄດເລກະທໍລີທີ່ມີຊື່ໃນ -I ທາງ​ເລືອກ​ຈະ​ໄດ້​ຮັບ​ການ​ຄົ້ນ​ຫາ​ໃນ​ຄໍາ​ສັ່ງ​
ລະບຸ. ຖ້າ -I ທາງເລືອກແມ່ນໃຊ້ເພື່ອລະບຸໄດເລກະທໍລີທີ່ເປັນຫນຶ່ງໃນ
ສະ​ຖານ​ທີ່​ປົກ​ກະ​ຕິ​ຄົ້ນ​ຫາ​ໂດຍ​ເລີ່ມ​ຕົ້ນ​, ຜົນ​ໄດ້​ຮັບ​ແມ່ນ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​. ການຈັດຕັ້ງປະຕິບັດ
ຈະຮອງຮັບຢ່າງໜ້ອຍສິບຕົວຢ່າງຂອງຕົວເລືອກນີ້ໃນອັນດຽວ c99 ຄໍາສັ່ງ
ຄຳຮຽກຮ້ອງ.

−ລ ລະບົບ
ປ່ຽນແປງລະບົບການຊອກຫາຫ້ອງສະໝຸດທີ່ມີຊື່ຢູ່ໃນ −l ວັດຖຸເພື່ອ
ເບິ່ງຢູ່ໃນໄດເລກະທໍລີທີ່ມີຊື່ໂດຍ ລະບົບ ຊື່ເສັ້ນທາງກ່ອນທີ່ຈະຊອກຫາຢູ່ໃນ
ສະຖານທີ່ປົກກະຕິ. ໄດເລກະທໍລີທີ່ມີຊື່ໃນ −ລ ທາງ​ເລືອກ​ຈະ​ໄດ້​ຮັບ​ການ​ຄົ້ນ​ຫາ​ໃນ​ຄໍາ​ສັ່ງ​
ລະບຸ. ຖ້າ −ລ ທາງເລືອກແມ່ນໃຊ້ເພື່ອລະບຸໄດເລກະທໍລີທີ່ເປັນຫນຶ່ງໃນ
ສະ​ຖານ​ທີ່​ປົກ​ກະ​ຕິ​ຄົ້ນ​ຫາ​ໂດຍ​ເລີ່ມ​ຕົ້ນ​, ຜົນ​ໄດ້​ຮັບ​ແມ່ນ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​. ການຈັດຕັ້ງປະຕິບັດ
ຈະຮອງຮັບຢ່າງໜ້ອຍສິບຕົວຢ່າງຂອງຕົວເລືອກນີ້ໃນອັນດຽວ c99 ຄໍາສັ່ງ
ຄຳຮຽກຮ້ອງ. ຖ້າໄດເລກະທໍລີທີ່ກໍານົດໂດຍ a −ລ ທາງເລືອກປະກອບມີໄຟລ໌ທີ່ມີຊື່
ເລີ່ມຕົ້ນດ້ວຍສາຍໃດນຶ່ງ "libc.", "libl.", "ຫົວຂໍ້ libpthread.", "libm.",
"librt.", "libtrace.", "libxnet.", ຫຼື "ລີບີ.", ຜົນໄດ້ຮັບແມ່ນບໍ່ໄດ້ລະບຸ.

−l ຫ້ອງສະຫມຸດ
ຄົ້ນຫາຫ້ອງສະຫມຸດທີ່ມີຊື່ ຫ້ອງສະໝຸດ.a. ຫ້ອງສະຫມຸດຈະຖືກຄົ້ນຫາໃນເວລາທີ່ມັນ
ຊື່ແມ່ນພົບ, ສະນັ້ນການຈັດວາງຂອງ a −l ທາງເລືອກແມ່ນສໍາຄັນ. ຫຼາຍ
ຫ້ອງສະຫມຸດມາດຕະຖານສາມາດຖືກລະບຸໄວ້ໃນລັກສະນະນີ້, ດັ່ງທີ່ອະທິບາຍໄວ້ໃນ EXTENDED
ພາກສ່ວນລາຍລະອຽດ. ການຈັດຕັ້ງປະຕິບັດອາດຈະຮັບຮູ້ການຈັດຕັ້ງປະຕິບັດທີ່ໄດ້ກໍານົດ
ຄໍາຕໍ່ທ້າຍນອກຈາກ .a ຫມາຍເຖິງຫ້ອງສະຫມຸດ.

−ອ ທາງເລືອກ
ລະບຸລະດັບການເພີ່ມປະສິດທິພາບລະຫັດ. ຖ້າ ທາງເລືອກ option-argument ແມ່ນ
ຫລັກ '0', ການເພີ່ມປະສິດທິພາບລະຫັດພິເສດທັງຫມົດຈະຖືກປິດໃຊ້ງານ. ຖ້າມັນເປັນຕົວເລກ
'1', ລັກສະນະຂອງການເພີ່ມປະສິດທິພາບແມ່ນບໍ່ໄດ້ລະບຸ. ຖ້າ −ອ ທາງ​ເລືອກ​ແມ່ນ​ຍົກ​ເວັ້ນ​,
ລັກສະນະຂອງການເພີ່ມປະສິດທິພາບເລີ່ມຕົ້ນຂອງລະບົບແມ່ນບໍ່ໄດ້ລະບຸ. ມັນ​ແມ່ນ
ບໍ່ໄດ້ລະບຸວ່າລະຫັດທີ່ສ້າງຂຶ້ນໃນທີ່ປະທັບຂອງ −ອ 0 ທາງ​ເລືອກ​ແມ່ນ​
ຄືກັນກັບທີ່ສ້າງຂຶ້ນເມື່ອ −ອ ຖືກລະເວັ້ນ. ອື່ນໆ ທາງເລືອກ ຄຸນຄ່າອາດຈະເປັນ
ສະຫນັບສະຫນູນ.

−o outfile
ໃຊ້ຊື່ເສັ້ນທາງ outfile, ແທນທີ່ຈະເປັນຄ່າເລີ່ມຕົ້ນ , ສໍາລັບໄຟລ໌ປະຕິບັດໄດ້
ຜະລິດ. ຖ້າ −o ທາງເລືອກແມ່ນມີຢູ່ −ຄ or − ອ, ຜົນໄດ້ຮັບແມ່ນບໍ່ໄດ້ລະບຸ.

−ສ ຜະລິດວັດຖຸຫຼືໄຟລ໌ທີ່ປະຕິບັດໄດ້, ຫຼືທັງສອງ, ຈາກທີ່ສັນຍາລັກແລະອື່ນໆ
ຂໍ້​ມູນ​ທີ່​ບໍ່​ຈໍາ​ເປັນ​ຕ້ອງ​ສໍາ​ລັບ​ການ​ປະ​ຕິ​ບັດ​ທີ່​ເຫມາະ​ສົມ​ໂດຍ​ນໍາ​ໃຊ້​ exec ຄອບ​ຄົວ​ທີ່​ກໍາ​ນົດ​ໄວ້​ໃນ​
ປະລິມານສ່ວນຕິດຕໍ່ລະບົບຂອງ POSIX.1-2008 ໄດ້ຖືກເອົາອອກ (ຖອດອອກ). ຖ້າ
ທັງສອງ −ກ ແລະ −ສ ທາງເລືອກແມ່ນປະຈຸບັນ, ການປະຕິບັດແມ່ນບໍ່ໄດ້ກໍານົດ.

-U ຊື່ ເອົາຄໍານິຍາມເບື້ອງຕົ້ນຂອງ ຊື່.

ຫຼາຍຕົວຢ່າງຂອງ −D, -I, −ລ, −l, ແລະ -U ທາງເລືອກສາມາດຖືກກໍານົດ.

ດໍາເນີນງານ


ຄໍາຮ້ອງສະຫມັກຈະຕ້ອງຮັບປະກັນວ່າຢ່າງຫນ້ອຍຫນຶ່ງ ຊື່ເສັ້ນທາງ operand ແມ່ນ​ລະ​ບຸ​ໄວ້​. ໄດ້
ແບບຟອມດັ່ງຕໍ່ໄປນີ້ສໍາລັບ ຊື່ເສັ້ນທາງ operands ຈະໄດ້ຮັບການສະຫນັບສະຫນູນ:

ຍື່ນ.c ໄຟລ໌ແຫຼ່ງພາສາ C ທີ່ຈະລວບລວມແລະເຊື່ອມຕໍ່ທາງເລືອກ. ຄໍາຮ້ອງສະຫມັກ
ຈະຕ້ອງຮັບປະກັນວ່າ operand ເປັນຂອງຮູບແບບນີ້ຖ້າຫາກວ່າ −ຄ ທາງເລືອກແມ່ນຖືກນໍາໃຊ້.

ຍື່ນ.a ຫ້ອງສະໝຸດຂອງໄຟລ໌ວັດຖຸທີ່ປົກກະຕິຜະລິດໂດຍ ar ຜົນປະໂຫຍດ, ແລະຜ່ານ
ໂດຍກົງກັບຕົວແກ້ໄຂການເຊື່ອມຕໍ່. ການ​ປະ​ຕິ​ບັດ​ອາດ​ຈະ​ຮັບ​ຮູ້​ການ​ປະ​ຕິ​ບັດ -
ຄຳຕໍ່ທ້າຍທີ່ກຳນົດໄວ້ນອກເໜືອໄປຈາກ .a ເປັນ denoting ຫໍສະຫມຸດໄຟລ໌ວັດຖຸ.

ຍື່ນ.o ໄຟລ໌ວັດຖຸທີ່ຜະລິດໂດຍ c99 −ຄ ແລະສົ່ງຜ່ານຕົວແກ້ໄຂການເຊື່ອມຕໍ່ໂດຍກົງ.
ການຈັດຕັ້ງປະຕິບັດອາດຈະຮັບຮູ້ຄໍາຕໍ່ທ້າຍທີ່ກໍານົດການຈັດຕັ້ງປະຕິບັດນອກຈາກ .o as
ຫມາຍເຖິງໄຟລ໌ວັດຖຸ.

ການປະມວນຜົນຂອງໄຟລ໌ອື່ນໆແມ່ນກໍານົດການປະຕິບັດ.

STDIN


ບໍ່​ໄດ້​ນໍາ​ໃຊ້.

ປັດໄຈນໍາເຂົ້າ ເອກະສານ


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

ENVIRONMENT ຄວາມຮັບຜິດຊອບ


ຕົວແປສະພາບແວດລ້ອມຕໍ່ໄປນີ້ຈະສົ່ງຜົນກະທົບຕໍ່ການປະຕິບັດ c99:

ພາສາ ໃຫ້ຄ່າເລີ່ມຕົ້ນສໍາລັບຕົວແປສາກົນທີ່ບໍ່ໄດ້ຕັ້ງ ຫຼື
null. (ເບິ່ງປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ສ່ວນ 8.2,
Internationalization Variables ​ເພື່ອ​ຄວາມ​ກ້າວໜ້າ​ຂອງ​ການ​ຫັນ​ເປັນ​ສາກົນ
ຕົວແປທີ່ໃຊ້ເພື່ອກໍານົດຄ່າຂອງປະເພດທ້ອງຖິ່ນ.)

LC_ALL ຖ້າຕັ້ງເປັນຄ່າສະຕຣິງທີ່ບໍ່ຫວ່າງເປົ່າ, ລົບລ້າງຄ່າຂອງອັນອື່ນທັງໝົດ
ຕົວແປສາກົນ.

LC_CTYPE ກໍານົດທ້ອງຖິ່ນສໍາລັບການຕີຄວາມລໍາດັບຂອງ bytes ຂອງຂໍ້ມູນຂໍ້ຄວາມ
ເປັນຕົວອັກສອນ (ຕົວຢ່າງ, single-byte ກົງກັນຂ້າມກັບ multi-byte ຕົວອັກສອນໃນ
arguments ແລະ input ໄຟລ໌).

LC_MESSAGES
ກໍານົດທ້ອງຖິ່ນທີ່ຄວນຈະຖືກນໍາໃຊ້ເພື່ອຜົນກະທົບຕໍ່ຮູບແບບແລະເນື້ອໃນຂອງ
ຂໍ້ຄວາມການວິນິໄສທີ່ຂຽນເປັນຄວາມຜິດພາດມາດຕະຖານ.

NLSPATH ກໍານົດສະຖານທີ່ຂອງລາຍການຂໍ້ຄວາມສໍາລັບການປະມວນຜົນຂອງ LC_MESSAGES.

TMPDIR ສະຫນອງຊື່ເສັ້ນທາງທີ່ຄວນຈະ override ໄດເລກະທໍລີເລີ່ມຕົ້ນສໍາລັບການຊົ່ວຄາວ
ໄຟລ໌, ຖ້າມີ. ໃນລະບົບທີ່ສອດຄ່ອງກັບ XSI, ໃຫ້ຊື່ເສັ້ນທາງທີ່ຈະ
override ໄດເລກະທໍລີເລີ່ມຕົ້ນສໍາລັບໄຟລ໌ຊົ່ວຄາວ, ຖ້າມີ.

ASYNCHRONOUS ເຫດການ


ເລີ່ມຕົ້ນ.

STDOUT


ຖ້າຫຼາຍກວ່າ ໜຶ່ງ ອັນ ຊື່ເສັ້ນທາງ operand ສິ້ນສຸດໃນ .c (ຫຼືອາດຈະເປັນຄໍາຕໍ່ທ້າຍທີ່ບໍ່ໄດ້ກໍານົດອື່ນໆ) ແມ່ນ
ໃຫ້, ສໍາລັບແຕ່ລະໄຟລ໌ດັ່ງກ່າວ:

"%s:\n", <ຊື່ເສັ້ນທາງ>

ອາດຈະຂຽນ. ຂໍ້ຄວາມເຫຼົ່ານີ້, ຖ້າເປັນລາຍລັກອັກສອນ, ຈະນໍາຫນ້າການປະມວນຜົນຂອງແຕ່ລະວັດສະດຸປ້ອນ
ໄຟລ໌; ພວກມັນຈະບໍ່ຖືກຂຽນໃສ່ຜົນໄດ້ຮັບມາດຕະຖານ ຖ້າພວກມັນຖືກຂຽນໃສ່ມາດຕະຖານ
ຄວາມຜິດພາດ, ດັ່ງທີ່ອະທິບາຍໄວ້ໃນພາກ STDERR.

ຖ້າ − ອ ທາງ​ເລືອກ​ແມ່ນ​ໄດ້​ລະ​ບຸ​ໄວ້​, ຜົນ​ຜະ​ລິດ​ມາດ​ຕະ​ຖານ​ຈະ​ເປັນ​ໄຟລ​໌​ຂໍ້​ຄວາມ​ທີ່​ເປັນ​ຕົວ​ແທນ​
ຜົນໄດ້ຮັບຂອງຂັ້ນຕອນ preprocessing ຂອງພາສາ; ມັນອາດຈະມີຂໍ້ມູນເພີ່ມເຕີມ
ເຫມາະສົມສໍາລັບການລວບລວມຂໍ້ມູນຕໍ່ໄປ.

ສະດຸດ


ຄວາມຜິດພາດມາດຕະຖານຈະຖືກນໍາໃຊ້ສໍາລັບຂໍ້ຄວາມວິນິດໄສເທົ່ານັ້ນ. ຖ້າຫຼາຍກວ່າຫນຶ່ງ ຊື່ເສັ້ນທາງ
operand ສິ້ນສຸດໃນ .c (ຫຼືອາດຈະເປັນຄໍາຕໍ່ທ້າຍທີ່ບໍ່ໄດ້ລະບຸອື່ນໆ) ແມ່ນໃຫ້, ສໍາລັບແຕ່ລະຄົນ
file:

"%s:\n", <ຊື່ເສັ້ນທາງ>

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

ຜົນປະໂຫຍດນີ້ອາດຈະສ້າງຂໍ້ຄວາມເຕືອນກ່ຽວກັບເງື່ອນໄຂບາງຢ່າງທີ່ບໍ່ຮັບປະກັນ
ສົ່ງຄືນຄ່າອອກຂໍ້ຜິດພາດ (ບໍ່ແມ່ນສູນ).

OUTPUT ເອກະສານ


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

ອະທິບາຍ ລາຍລະອຽດ


ມາດຕະຖານ ຫ້ອງສະຫມຸດ
ໄດ້ c99 ຜົນປະໂຫຍດຈະຕ້ອງຮັບຮູ້ສິ່ງຕໍ່ໄປນີ້ −l ທາງ​ເລືອກ​ສໍາ​ລັບ​ຫ້ອງ​ສະ​ຫມຸດ​ມາດ​ຕະ​ຖານ​:

−l c ຕົວເລືອກນີ້ຈະເຮັດໃຫ້ມີການໂຕ້ຕອບທັງໝົດທີ່ອ້າງອີງຢູ່ໃນລະບົບ
ປະລິມານການໂຕ້ຕອບຂອງ POSIX.1-2008, ໂດຍມີຂໍ້ຍົກເວັ້ນທີ່ເປັນໄປໄດ້
ອິນເຕີເຟດທີ່ລະບຸວ່າອາໄສຢູ່ໃນ , , , ,
, , , , , ,
, , , , pthread_kill(), ແລະ
pthread_sigmask() ໃນ , , ການໂຕ້ຕອບທີ່ຖືກຫມາຍເປັນທາງເລືອກໃນ
, ການໂຕ້ຕອບທີ່ຖືກຫມາຍເປັນ ADV (ຂໍ້ມູນຂ່າວສານທີ່ປຶກສາ) ໃນ , ແລະ
ການໂຕ້ຕອບທີ່ເລີ່ມຕົ້ນດ້ວຍຄໍານໍາຫນ້າ clock_ ຫຼື time_ ໃນ . ຕົວເລືອກນີ້
ບໍ່ຈໍາເປັນຕ້ອງມີຢູ່ເພື່ອເຮັດໃຫ້ເກີດການຄົ້ນຫາຫ້ອງສະຫມຸດນີ້.

−l l ຕົວເລືອກນີ້ຈະເຮັດໃຫ້ມີການໂຕ້ຕອບທັງໝົດທີ່ຕ້ອງການໂດຍພາສາ C
ຜົນຜະລິດຂອງ lex ທີ່ຍັງບໍ່ໄດ້ເຮັດໃຫ້ສາມາດໃຊ້ໄດ້ໂດຍຜ່ານ −l c ທາງເລືອກ.

−l pthread
ທາງເລືອກນີ້ຈະເຮັດໃຫ້ມີການໂຕ້ຕອບທັງຫມົດທີ່ອ້າງອີງຢູ່ໃນ ແລະ
pthread_kill() ແລະ pthread_sigmask() ອ້າງອີງໃນ . ເປັນ
ການປະຕິບັດອາດຈະຊອກຫາຫ້ອງສະຫມຸດນີ້ໃນເວລາທີ່ບໍ່ມີທາງເລືອກນີ້.

−l m ທາງເລືອກນີ້ຈະເຮັດໃຫ້ມີການໂຕ້ຕອບທັງຫມົດທີ່ອ້າງອີງຢູ່ໃນ ,
, ແລະ . ການປະຕິບັດອາດຈະຊອກຫາຫ້ອງສະຫມຸດນີ້ຢູ່ໃນ
ບໍ່ມີທາງເລືອກນີ້.

−l rt ທາງເລືອກນີ້ຈະເຮັດໃຫ້ມີການໂຕ້ຕອບທັງຫມົດທີ່ອ້າງອີງຢູ່ໃນ ,
, , , ແລະ , ການໂຕ້ຕອບທີ່ຖືກຫມາຍເປັນ
ທາງເລືອກໃນ , ການໂຕ້ຕອບທີ່ຖືກຫມາຍເປັນ ADV (ຂໍ້ມູນຂ່າວສານທີ່ປຶກສາ) ໃນ
, ແລະສ່ວນຕິດຕໍ່ເລີ່ມຕົ້ນດ້ວຍຄຳນຳໜ້າ clock_ ແລະ time_ ໃນ
. ການປະຕິບັດອາດຈະຊອກຫາຫ້ອງສະຫມຸດນີ້ໃນກໍລະນີທີ່ບໍ່ມີນີ້
ທາງເລືອກ.

−l trace ທາງເລືອກນີ້ຈະເຮັດໃຫ້ມີການໂຕ້ຕອບທັງຫມົດທີ່ອ້າງອີງຢູ່ໃນ . ເປັນ
ການປະຕິບັດອາດຈະຊອກຫາຫ້ອງສະຫມຸດນີ້ໃນເວລາທີ່ບໍ່ມີທາງເລືອກນີ້.

−l xnet ທາງເລືອກນີ້ຈະເຮັດໃຫ້ມີການໂຕ້ຕອບທັງຫມົດທີ່ອ້າງອີງຢູ່ໃນ ,
, , , ແລະ . ການ​ປະ​ຕິ​ບັດ​
ອາດຈະຊອກຫາຫ້ອງສະຫມຸດນີ້ໃນເວລາທີ່ບໍ່ມີທາງເລືອກນີ້.

−l y ຕົວເລືອກນີ້ຈະເຮັດໃຫ້ມີການໂຕ້ຕອບທັງໝົດທີ່ຕ້ອງການໂດຍພາສາ C
ຜົນຜະລິດຂອງ yacc ທີ່ຍັງບໍ່ໄດ້ເຮັດໃຫ້ສາມາດໃຊ້ໄດ້ໂດຍຜ່ານ −l c ທາງເລືອກ.

ໃນກໍລະນີທີ່ບໍ່ມີທາງເລືອກທີ່ inhibit invocation ຂອງບັນນາທິການເຊື່ອມຕໍ່, ເຊັ່ນ: −ຄ or − ອ,
ໄດ້ c99 ຜົນປະໂຫຍດຈະເຮັດໃຫ້ເກີດການທຽບເທົ່າຂອງ a −l c ທາງເລືອກທີ່ຈະຖືກສົ່ງໄປຫາການເຊື່ອມຕໍ່
ບັນ​ນາ​ທິ​ການ​ຫຼັງ​ຈາກ​ທີ່​ສຸດ​ ຊື່ເສັ້ນທາງ ປະຕິບັດການຫຼື −l ທາງເລືອກ, ເຮັດໃຫ້ມັນຖືກຄົ້ນຫາຫຼັງຈາກທັງຫມົດ
ໄຟລ໌ວັດຖຸອື່ນໆ ແລະຫ້ອງສະໝຸດຖືກໂຫລດ.

ມັນບໍ່ໄດ້ຖືກລະບຸວ່າຫ້ອງສະຫມຸດ libc.a, libl.a, libm.a, libpthread.a, librt.a,
libtrace.a, libxnet.a, ຫຼື liby.a ມີຢູ່ເປັນໄຟລ໌ປົກກະຕິ. ການປະຕິບັດອາດຈະຍອມຮັບເປັນ
−l option-arguments ຊື່ຂອງວັດຖຸທີ່ບໍ່ມີເປັນໄຟລ໌ປົກກະຕິ.

ພາຍນອກ ສັນຍາລັກ
C compiler ແລະ link editor ສະຫນັບສະຫນູນຄວາມສໍາຄັນຂອງສັນຍາລັກພາຍນອກເຖິງ a
ຄວາມຍາວຢ່າງຫນ້ອຍ 31 bytes; ການ​ປະ​ຕິ​ບັດ​ຕາມ​ການ​ປະ​ເຊີນ​ກັບ​ສັນ​ຍາ​ລັກ​ເກີນ​
ຄວາມຍາວຂອງສັນຍາລັກສູງສຸດທີ່ກຳນົດໂດຍການປະຕິບັດແມ່ນບໍ່ໄດ້ລະບຸ.

compiler ແລະ link editor ສະຫນັບສະຫນູນຢ່າງຫນ້ອຍ 511 ສັນຍາລັກພາຍນອກຕໍ່ແຫຼ່ງຫຼື
ໄຟລ໌ວັດຖຸ, ແລະຢ່າງໜ້ອຍ 4095 ສັນຍາລັກພາຍນອກທັງໝົດ. ຂໍ້ຄວາມວິນິດໄສຈະຕ້ອງ
ຈະຖືກຂຽນໃສ່ຜົນໄດ້ຮັບມາດຕະຖານຖ້າເກີນຂອບເຂດຈໍາກັດການຈັດຕັ້ງປະຕິບັດ; ອື່ນໆ
ການ​ກະ​ທໍາ​ແມ່ນ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​.

Header ຄົ້ນຫາ
ຖ້າໄຟລ໌ທີ່ມີຊື່ດຽວກັນກັບຫນຶ່ງໃນຫົວມາດຕະຖານທີ່ກໍານົດໄວ້ໃນ Base
ປະລິມານຄໍານິຍາມຂອງ POSIX.1-2008, ບົດ 13, Headers, ບໍ່ໄດ້ສະຫນອງໃຫ້ເປັນສ່ວນຫນຶ່ງຂອງ
ການ​ປະ​ຕິ​ບັດ​, ຖືກ​ຈັດ​ໃສ່​ໃນ​ທຸກ​ສະ​ຖານ​ທີ່​ປົກ​ກະ​ຕິ​ທີ່​ຖືກ​ຄົ້ນ​ຫາ​ໂດຍ​ການ​ເລີ່ມ​ຕົ້ນ​ສໍາ​ລັບ​ການ​
headers, ຜົນໄດ້ຮັບແມ່ນບໍ່ໄດ້ກໍານົດ.

ດໍາເນີນໂຄງການ ສະພາບແວດລ້ອມ
ການປະຕິບັດທັງຫມົດຈະຕ້ອງສະຫນັບສະຫນູນຫນຶ່ງໃນສະພາບແວດລ້ອມໂຄງການຕໍ່ໄປນີ້ເປັນ
ຄ່າເລີ່ມຕົ້ນ. ການປະຕິບັດອາດຈະສະຫນັບສະຫນູນຫຼາຍກ່ວາຫນຶ່ງໃນໂຄງການຕໍ່ໄປນີ້
ສະພາບແວດລ້ອມ. ຄໍາຮ້ອງສະຫມັກສາມາດນໍາໃຊ້ sysconf() ຫລື getconf ເພື່ອກໍານົດວ່າການຂຽນໂປຼແກຼມໃດ
ສະພາບແວດລ້ອມໄດ້ຮັບການສະຫນັບສະຫນູນ.

ຕາຕະລາງ 4-4: ດໍາເນີນໂຄງການ ສະພາບແວດລ້ອມ: ປະເພດ ຂະຫນາດ

┌────────────────────────── ┬────────────────────── ─────┬──────────┐
ດໍາເນີນໂຄງການ ສະພາບແວດລ້ອມບິດ inບິດ inບິດ inບິດ in
getconf ຊື່intຍາວຕົວຊີ້off_t
├────────────────────────── ┼─────────────────── ─────┼──────────┤
│_POSIX_V7_ILP32_OFF32 │ 32 │ 32 │ 32 │ 32 │
│_POSIX_V7_ILP32_OFFBIG │ 32 │ 32 │ 32 │ ≥64 │
│_POSIX_V7_LP64_OFF64 │ 32 │ 64 │ 64 │ 64 │
│_POSIX_V7_LPBIG_OFFBIG │ ≥32 │ ≥64 │ ≥64 │ ≥64 │
└────────────────────────── ┴─────────────────────── ─────┴──────────┘
ການ​ປະ​ຕິ​ບັດ​ທັງ​ຫມົດ​ຈະ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຫນຶ່ງ​ຫຼື​ຫຼາຍ​ສະ​ພາບ​ແວດ​ລ້ອມ​ທີ່ width ຂອງ​
ປະເພດຕໍ່ໄປນີ້ແມ່ນບໍ່ໃຫຍ່ກວ່າຄວາມກວ້າງຂອງປະເພດ ຍາວ:

blksize_t ptrdiff_t tcflag_t
cc_t ຂະ ໜາດ wchar_t
mode_t speed_t wint_t
nfds_t ssize_t
pid_t suseconds_t

ໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້ທີ່ສ້າງຂຶ້ນເມື່ອສະພາບແວດລ້ອມເຫຼົ່ານີ້ຖືກເລືອກຈະຕ້ອງຢູ່ໃນທີ່ເຫມາະສົມ
ຮູບ​ແບບ​ສໍາ​ລັບ​ການ​ປະ​ຕິ​ບັດ​ໂດຍ​ exec ຄອບຄົວຂອງຫນ້າທີ່. ແຕ່ລະສະພາບແວດລ້ອມອາດຈະເປັນຫນຶ່ງໃນ
ຄົນໃນ ຕາຕະລາງ 4-4, ດໍາເນີນໂຄງການ ສະພາບແວດລ້ອມ: ປະເພດ ຂະຫນາດ, ຫຼືມັນອາດຈະເປັນສະພາບແວດລ້ອມອື່ນ.
ຊື່ສໍາລັບສະພາບແວດລ້ອມທີ່ຕອບສະຫນອງຄວາມຕ້ອງການນີ້ຈະຖືກຜະລິດໂດຍ a getconf
ຄໍາສັ່ງໂດຍໃຊ້ argument POSIX_V7_WIDTH_RESTRICTED_ENVS, ເປັນ - ບັນ​ຊີ​ລາຍ​ການ​ແຍກ​ອອກ​
ຊື່ທີ່ເຫມາະສົມສໍາລັບການໃຊ້ກັບ getconf −v ທາງເລືອກ. ຖ້າຫຼາຍກວ່າຫນຶ່ງສະພາບແວດລ້ອມຕອບສະຫນອງ
ຄວາມ​ຕ້ອງ​ການ​, ຊື່​ຂອງ​ສະ​ພາບ​ແວດ​ລ້ອມ​ທັງ​ຫມົດ​ດັ່ງ​ກ່າວ​ຈະ​ໄດ້​ຮັບ​ຜົນ​ຜະ​ລິດ​ໃນ​ສາຍ​ແຍກ​ຕ່າງ​ຫາກ​. ໃດ
ຊື່ເຫຼົ່ານີ້ສາມາດຖືກນໍາໃຊ້ໃນຕໍ່ມາ getconf ຄໍາສັ່ງທີ່ຈະໄດ້ຮັບທຸງ
ສະ​ເພາະ​ສະ​ພາບ​ແວດ​ລ້ອມ​ທີ່​ມີ​ຄໍາ​ຕໍ່​ທ້າຍ​ຕໍ່​ໄປ​ນີ້​ເພີ່ມ​ຂຶ້ນ​ຕາມ​ຄວາມ​ເຫມາະ​ສົມ​:

_CFLAGS ເພື່ອໃຫ້ໄດ້ຮັບທຸງ C compiler.

_LDFLAGS ເພື່ອຮັບເອົາທຸງ linker/loader.

_LIBS ເພື່ອເອົາຫ້ອງສະໝຸດ.

ຄວາມຕ້ອງການນີ້ອາດຈະຖືກໂຍກຍ້າຍອອກໃນສະບັບໃນອະນາຄົດ.

ເມື່ອຜົນປະໂຫຍດນີ້ປະມວນຜົນໄຟລ໌ທີ່ມີຟັງຊັນທີ່ເອີ້ນວ່າ ຕົ້ນຕໍ(), ມັນຈະເປັນ
ກຳນົດດ້ວຍປະເພດຜົນຕອບແທນທຽບເທົ່າກັບ int. ການ​ນໍາ​ໃຊ້​ກັບ​ຄືນ​ມາ​ຈາກ​ການ​ໂທ​ໃນ​ເບື້ອງ​ຕົ້ນ​ເພື່ອ​
ຕົ້ນຕໍ() ຈະທຽບເທົ່າ (ນອກເໜືອໄປຈາກບັນຫາຂອບເຂດພາສາ) ກັບການເອີ້ນ
ການທ່ອງທ່ຽວ() ກັບຄ່າທີ່ສົ່ງຄືນ. ຮອດຈຸດສິ້ນສຸດຂອງການໂທເບື້ອງຕົ້ນກັບ ຕົ້ນຕໍ() ຈະເປັນ
ເທົ່າກັບການໂທ ການທ່ອງທ່ຽວ(0). ການປະຕິບັດຈະບໍ່ປະກາດຕົວແບບສໍາລັບການນີ້
function

ການປະຕິບັດການສະຫນອງການກໍານົດຄ່າສໍາລັບ C compiler flags, linker/loader flags,
ແລະຫ້ອງສະຫມຸດສໍາລັບແຕ່ລະສະພາບແວດລ້ອມທີ່ສະຫນັບສະຫນູນ. ໃນເວລາທີ່ຄໍາຮ້ອງສະຫມັກຕ້ອງໃຊ້ສະເພາະ
ສະພາບແວດລ້ອມການຂຽນໂປລແກລມແທນທີ່ຈະເປັນສະພາບແວດລ້ອມການດໍາເນີນໂຄງການເລີ່ມຕົ້ນ
ໃນ​ຂະ​ນະ​ທີ່​ການ​ສັງ​ລວມ​, ຄໍາ​ຮ້ອງ​ສະ​ຫມັກ​ຄັ້ງ​ທໍາ​ອິດ​ຈະ​ກວດ​ສອບ​ວ່າ​ການ​ປະ​ຕິ​ບັດ​ສະ​ຫນັບ​ສະ​ຫນູນ​
ສະພາບແວດລ້ອມທີ່ຕ້ອງການ. ຖ້າຫາກວ່າສະພາບແວດລ້ອມການຂຽນໂປລແກລມທີ່ຕ້ອງການໄດ້ຮັບການສະຫນັບສະຫນູນ, ຄໍາຮ້ອງສະຫມັກ
ຫຼັງ​ຈາກ​ນັ້ນ​ຈະ​ຮຽກ​ຮ້ອງ​ c99 ກັບທຸງ C compiler ທີ່ເຫມາະສົມເປັນທາງເລືອກທໍາອິດສໍາລັບການ
ລວບລວມ, ທຸງ linker/loader ທີ່ເຫມາະສົມຫຼັງຈາກທາງເລືອກອື່ນຍົກເວັ້ນ −l ແຕ່ກ່ອນ
operands ຫຼື −l ທາງເລືອກ, ແລະຫ້ອງສະຫມຸດທີ່ເຫມາະສົມໃນຕອນທ້າຍຂອງ operands ແລະ
−l ຕົວເລືອກ

ແອັບພລິເຄຊັ່ນທີ່ສອດຄ່ອງກັນຈະບໍ່ພະຍາຍາມເຊື່ອມຕໍ່ກັນໄຟລ໌ວັດຖຸທີ່ລວບລວມໄວ້
ຮູບແບບການຂຽນໂປຼແກຼມທີ່ແຕກຕ່າງກັນ. ຄໍາ​ຮ້ອງ​ສະ​ຫມັກ​ຍັງ​ຈະ​ໄດ້​ຮັບ​ຮູ້​ວ່າ​ຂໍ້​ມູນ binary ວາງ​ໄວ້​ໃນ​
ໜ່ວຍຄວາມຈຳທີ່ໃຊ້ຮ່ວມກັນ ຫຼືໃນໄຟລ໌ອາດຈະບໍ່ຮັບຮູ້ໂດຍແອັບພລິເຄຊັນທີ່ສ້າງຂຶ້ນສຳລັບອັນອື່ນ
ຮູບແບບການຂຽນໂປລແກລມ.

ຕາຕະລາງ 4-5: ດໍາເນີນໂຄງການ ສະພາບແວດລ້ອມ: c99 Arguments

┌────────────────────────── ┬───────────────────── ──────────────────────────── ┐
ດໍາເນີນໂຄງການ ສະພາບແວດລ້ອມ ││ c99 Arguments
getconf ຊື່ການນໍາໃຊ້getconf ຊື່
├───────────────────────── ┼────────────────── ──────────────────────────── ┤
│_POSIX_V7_ILP32_OFF32 │ C Compiler Flags │ POSIX_V7_ILP32_OFF32_CFLAGS │
│ │ Linker/Loader Flags │ POSIX_V7_ILP32_OFF32_LDFLAGS │
│ │ ຫ້ອງສະໝຸດ │ POSIX_V7_ILP32_OFF32_LIBS │
├───────────────────────── ┼────────────────── ──────────────────────────── ┤
│_POSIX_V7_ILP32_OFFBIG │ C Compiler Flags │ POSIX_V7_ILP32_OFFBIG_CFLAGS │
│ │ ທຸງ Linker/Loader │ POSIX_V7_ILP32_OFFBIG_LDFLAGS │
│ │ ຫ້ອງສະໝຸດ │ POSIX_V7_ILP32_OFFBIG_LIBS │
├───────────────────────── ┼────────────────── ──────────────────────────── ┤
│_POSIX_V7_LP64_OFF64 │ C Compiler Flags │ POSIX_V7_LP64_OFF64_CFLAGS │
│ │ Linker/Loader Flags │ POSIX_V7_LP64_OFF64_LDFLAGS │
│ │ ຫ້ອງສະໝຸດ │ POSIX_V7_LP64_OFF64_LIBS │
├───────────────────────── ┼────────────────── ──────────────────────────── ┤
│_POSIX_V7_LPBIG_OFFBIG │ C Compiler Flags │ POSIX_V7_LPBIG_OFFBIG_CFLAGS │
│ │ Linker/Loader Flags │ POSIX_V7_LPBIG_OFFBIG_LDFLAGS │
│ │ ຫ້ອງສະໝຸດ │ POSIX_V7_LPBIG_OFFBIG_LIBS │
└────────────────────────── ┴──────────────────── ────────────────────────────── ┘
ນອກເຫນືອຈາກສະພາບແວດລ້ອມການຂຽນໂປລແກລມຂະຫນາດຂ້າງເທິງ, ການປະຕິບັດທັງຫມົດຍັງ
ສະ​ຫນັບ​ສະ​ຫນູນ​ສະ​ພາບ​ແວດ​ລ້ອມ​ການ​ຕັ້ງ​ໂຄງ​ການ​ຫຼາຍ​ກະ​ທູ້​ທີ່​ເປັນ orthogon ກັບ​ທັງ​ຫມົດ​ຂອງ​
ສະພາບແວດລ້ອມການຂຽນໂປລແກລມທີ່ລະບຸໄວ້ຂ້າງເທິງ. ໄດ້ getconf ຜົນປະໂຫຍດສາມາດນໍາໃຊ້ເພື່ອໃຫ້ໄດ້ຮັບທຸງສໍາລັບ
ສະພາບແວດລ້ອມການຂຽນໂປລແກລມ threaded, ດັ່ງທີ່ໄດ້ລະບຸໄວ້ໃນ ຕາຕະລາງ 4-6, ກະທູ້ ດໍາເນີນໂຄງການ
ສິ່ງແວດລ້ອມ: c99 Arguments.

ຕາຕະລາງ 4-6: ກະທູ້ ດໍາເນີນໂຄງການ ສິ່ງແວດລ້ອມ: c99 Arguments

┌────────────────────────── ┬───────────────────── ─────────────────────── ┐
ດໍາເນີນໂຄງການ ສະພາບແວດລ້ອມ ││ c99 Arguments
getconf ຊື່ການນໍາໃຊ້getconf ຊື່
├───────────────────────── ┼────────────────── ─────────────────────── ┤
│_POSIX_THREADS │ C Compiler Flags │ POSIX_V7_THREADS_CFLAGS │
│ │ ທຸງ Linker/Loader │ POSIX_V7_THREADS_LDFLAGS │
└────────────────────────── ┴──────────────────── ─────────────────────── ┘
ທຸງສະພາບແວດລ້ອມການຂຽນໂປລແກລມເຫຼົ່ານີ້ອາດຈະຖືກນໍາໃຊ້ຮ່ວມກັບຂະຫນາດໃດໆຂອງປະເພດ
ສະພາບແວດລ້ອມການຂຽນໂປລແກລມສະຫນັບສະຫນູນໂດຍການຈັດຕັ້ງປະຕິບັດ.

ອອກ STATUS


ຄ່າທາງອອກຕໍ່ໄປນີ້ຈະຖືກສົ່ງຄືນ:

0 ສໍາເລັດການລວບລວມຫຼືແກ້ໄຂການເຊື່ອມຕໍ່.

>0 ເກີດຄວາມຜິດພາດຂຶ້ນ.

ຂໍ້ສັງເກດ OF ຄວາມຜິດພາດ


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

ໄດ້ ດັ່ງຕໍ່ໄປນີ້ ພາກສ່ວນ ມີ ຂໍ້ມູນ.

ຄໍາຮ້ອງສະຫມັກ ການນໍາໃຊ້


ນັບຕັ້ງແຕ່ c99 ຜົນປະໂຫຍດປົກກະຕິຈະສ້າງໄຟລ໌ໃນໄດເລກະທໍລີປະຈຸບັນໃນລະຫວ່າງ
ຂະບວນການລວບລວມ, ໂດຍປົກກະຕິມັນເປັນສິ່ງຈໍາເປັນທີ່ຈະດໍາເນີນການ c99 ຜົນປະໂຫຍດໃນໄດເລກະທໍລີໃນ
ເຊິ່ງໄຟລ໌ສາມາດສ້າງໄດ້.

ກ່ຽວກັບລະບົບທີ່ໃຫ້ຄວາມສອດຄ່ອງຂອງ POSIX (ເບິ່ງປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008,
ບົດ 2, ຄວາມສອດຄ່ອງ), c99 ຕ້ອງການພຽງແຕ່ທາງເລືອກການພັດທະນາພາສາ C; XSI-
ລະບົບສອດຄ່ອງສະເຫມີສະຫນອງ c99.

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

ມີຜົນສະທ້ອນທີ່ເປັນໄປໄດ້ວ່າຖ້າຜູ້ໃຊ້ສະຫນອງສະບັບຂອງມາດຕະຖານ
ຫນ້າທີ່ (ກ່ອນທີ່ພວກມັນຈະຖືກພົບໂດຍ implicit −l c ຫຼືຈະແຈ້ງ −l m), ນັ້ນ
ຮຸ່ນເຫຼົ່ານັ້ນຈະຖືກໃຊ້ແທນຮຸ່ນມາດຕະຖານ. ມີເຫດຜົນຕ່າງໆ
ນີ້ອາດຈະບໍ່ເປັນຄວາມຈິງ (ຫນ້າທີ່ກໍານົດເປັນ macros, manipulations for clean name space,
ແລະອື່ນໆ), ດັ່ງນັ້ນການມີຢູ່ຂອງໄຟລ໌ທີ່ມີຊື່ໃນລັກສະນະດຽວກັນກັບຫ້ອງສະຫມຸດມາດຕະຖານ
ພາຍໃນ −ລ ໄດເລກະທໍລີຖືກລະບຸຢ່າງຊັດເຈນເພື່ອຜະລິດພຶດຕິກໍາທີ່ບໍ່ໄດ້ລະບຸ.

ຟັງຊັນທັງໝົດທີ່ລະບຸໄວ້ໃນປະລິມານສ່ວນຕິດຕໍ່ລະບົບຂອງ POSIX.1-2008 ອາດຈະຖືກເຮັດ
ເຫັນໄດ້ໂດຍການປະຕິບັດໃນເວລາທີ່ຫ້ອງສະຫມຸດມາດຕະຖານ C ຖືກຄົ້ນຫາ. ສອດຄ່ອງ
ແອັບພລິເຄຊັ່ນຕ້ອງຮ້ອງຂໍໃຫ້ຊອກຫາຫ້ອງສະໝຸດມາດຕະຖານອື່ນໆຢ່າງຈະແຈ້ງເມື່ອເຮັດວຽກ
ເຮັດໃຫ້ເຫັນໄດ້ໂດຍຫ້ອງສະຫມຸດເຫຼົ່ານັ້ນຖືກນໍາໃຊ້.

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

ບາງ c99 compilers ບໍ່ສອດຄ່ອງກັບ POSIX.1-2008 ບໍ່ຮອງຮັບ trigraphs ຕາມຄ່າເລີ່ມຕົ້ນ.

ຕົວຢ່າງ


1. ຕົວຢ່າງການນໍາໃຊ້ຕໍ່ໄປນີ້ລວບລວມ foo.c ແລະສ້າງໄຟລ໌ປະຕິບັດໄດ້ ຟູ:

c99 −o ຟູ foo.c

ຕົວຢ່າງການນໍາໃຊ້ຕໍ່ໄປນີ້ລວບລວມ foo.c ແລະສ້າງໄຟລ໌ວັດຖຸ foo.o:

c99 −ຄ foo.c

ຕົວຢ່າງການນໍາໃຊ້ຕໍ່ໄປນີ້ລວບລວມ foo.c ແລະສ້າງໄຟລ໌ປະຕິບັດໄດ້ :

c99 foo.c

ຕົວຢ່າງການນໍາໃຊ້ຕໍ່ໄປນີ້ລວບລວມ foo.c, ເຊື່ອມຕໍ່ມັນກັບ bar.o, ແລະສ້າງ
ແຟ້ມການບໍລິຫານ . ມັນຍັງອາດຈະສ້າງແລະອອກ foo.o:

c99 foo.c bar.o

2. ຕົວຢ່າງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນວິທີການທີ່ແອັບພລິເຄຊັນທີ່ໃຊ້ threads interfaces ສາມາດທົດສອບໄດ້
ສະຫນັບສະຫນູນແລະນໍາໃຊ້ສະພາບແວດລ້ອມການຂຽນໂປລແກລມທີ່ສະຫນັບສະຫນູນ 32-bit int, ຍາວ, ແລະ ຕົວຊີ້
ປະ​ເພດ​ແລະ​ off_t ພິມໂດຍໃຊ້ຢ່າງໜ້ອຍ 64 bits:

offbig_env=$(getconf _POSIX_V7_ILP32_OFFBIG)
if [ $offbig_env != "-1" ] && [ $offbig_env != "ບໍ່ໄດ້ກໍານົດ" ]
ຫຼັງຈາກນັ້ນ
c99 $(getconf POSIX_V7_ILP32_OFFBIG_CFLAGS) \
$(getconf POSIX_V7_THREADS_CFLAGS) -D_XOPEN_SOURCE=700 \
$(getconf POSIX_V7_ILP32_OFFBIG_LDFLAGS) \
$(getconf POSIX_V7_THREADS_LDFLAGS) foo.c -o ຟູ \
$(getconf POSIX_V7_ILP32_OFFBIG_LIBS) \
-l pthread
ອື່ນ
echo ILP32_OFFBIG ດໍາເນີນໂຄງການ ສະພາບແວດລ້ອມ ບໍ່ ສະຫນັບສະຫນູນ
ການທ່ອງທ່ຽວ 1
fi

3. ຕົວຢ່າງຕໍ່ໄປນີ້ຊີ້ແຈງການນໍາໃຊ້ແລະການໂຕ້ຕອບຂອງ −ລ ແລະ −l ຕົວເລືອກ

ພິຈາລະນາກໍລະນີໃນໂມດູນໃດ ac ຟັງຊັນການໂທ f() ໃນຫ້ອງສະຫມຸດ libQ.a, ແລະໂມດູນ
bc ຟັງຊັນການໂທ g() ໃນຫ້ອງສະຫມຸດ libp.a. ສົມມຸດວ່າຫ້ອງສະຫມຸດທັງສອງຢູ່ໃນ
/a/b/c. ເສັ້ນຄໍາສັ່ງທີ່ຈະລວບລວມແລະເຊື່ອມຕໍ່ໃນແບບທີ່ຕ້ອງການແມ່ນ:

c99 −ລ /a/b/c main.o ac −l Q bc −l p

ໃນກໍລະນີນີ້ −ລ ທາງເລືອກພຽງແຕ່ຕ້ອງການກ່ອນຫນ້າທໍາອິດ −l ທາງເລືອກ, ນັບຕັ້ງແຕ່ທັງສອງ libQ.a
ແລະ libp.a ອາໃສຢູ່ໃນໄດເລກະທໍລີດຽວກັນ.

ຫຼາຍ −ລ ທາງ​ເລືອກ​ຕ່າງໆ​ສາ​ມາດ​ຖືກ​ນໍາ​ໃຊ້​ໃນ​ເວ​ລາ​ທີ່​ການ​ປະ​ທະ​ກັນ​ຊື່​ຫ້ອງ​ສະ​ຫມຸດ​ເກີດ​ຂຶ້ນ​. ການກໍ່ສ້າງໃນ
ຕົວຢ່າງກ່ອນຫນ້ານີ້, ສົມມຸດວ່າຜູ້ໃຊ້ຕ້ອງການໃຊ້ໃຫມ່ libp.a, ໃນ /a/a/a, ແຕ່
ຍັງຕ້ອງການ f() ຈາກ /a/b/c/libQ.a:

c99 −ລ /a/a/a −ລ /a/b/c main.o ac −l Q bc −l p

ໃນຕົວຢ່າງນີ້, ຕົວເຊື່ອມຕໍ່ຄົ້ນຫາ −ລ ທາງເລືອກໃນຄໍາສັ່ງທີ່ກໍານົດໄວ້, ແລະຊອກຫາ
/a/a/a/libp.a ກ່ອນທີ່ຈະ /a/b/c/libp.a ໃນເວລາທີ່ການແກ້ໄຂການອ້າງອີງສໍາລັບ bc. ຄໍາສັ່ງຂອງ
ໄດ້ −l ທາງເລືອກແມ່ນຍັງມີຄວາມສໍາຄັນ, ຢ່າງໃດກໍຕາມ.

4. ຕົວຢ່າງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນວ່າແອັບພລິເຄຊັນສາມາດໃຊ້ສະພາບແວດລ້ອມການຂຽນໂປຼແກຼມໄດ້ແນວໃດ
ຄວາມກວ້າງຂອງປະເພດຕໍ່ໄປນີ້: blksize_t, cc_t, mode_t, nfds_t, pid_t, ptrdiff_t,
ຂະ ໜາດ, speed_t, ssize_t, suseconds_t, tcflag_t, wchar_t, wint_t

ແມ່ນບໍ່ໃຫຍ່ກວ່າຄວາມກວ້າງຂອງປະເພດ ຍາວ:

# ຫນ້າ​ທໍາ​ອິດ ເລືອກ ຫນຶ່ງ of ໄດ້ ລາຍຊື່ ສະພາບແວດລ້ອມ ...

# ... ຖ້າບໍ່ມີຂໍ້ຈໍາກັດເພີ່ມເຕີມ, ທໍາອິດຈະເຮັດ:
CENV=$(getconf POSIX_V7_WIDTH_RESTRICTED_ENVS | head -nl)

# ... ຫຼື, ຖ້າສະພາບແວດລ້ອມທີ່ສະຫນັບສະຫນູນໄຟລ໌ຂະຫນາດໃຫຍ່ແມ່ນມັກ,
# ຊອກຫາຊື່ທີ່ມີ "OFF64" ຫຼື "OFFBIG". (ອັນນີ້ເລືອກ
# ຄົນສຸດທ້າຍໃນລາຍຊື່ຖ້າບໍ່ກົງກັນ.)
ສໍາລັບ CENV ໃນ $(getconf POSIX_V7_WIDTH_RESTRICTED_ENVS)
do
ກໍລະນີ $CENV ໃນ
*OFF64*|*OFFBIG*) break ;;
ວ່າ C
ເຮັດ

# ຊື່ສະພາບແວດລ້ອມທີ່ເລືອກສາມາດຖືກນໍາໃຊ້ເຊັ່ນນີ້:

c99 $(getconf ${CENV}_CFLAGS) -D _POSIX_C_SOURCE=200809L \
$(getconf ${CENV}_LDFLAGS) foo.c -o foo \
$(getconf ${CENV}_LIBS)

ສະຖານທີ່


ໄດ້ c99 ຜົນປະໂຫຍດແມ່ນອີງໃສ່ c89 ຜົນປະໂຫຍດເບື້ອງຕົ້ນໄດ້ຖືກນໍາສະເຫນີໃນ ISO POSIX-2: 1993
ມາດຕະຖານ.

ບາງສ່ວນຂອງການປ່ຽນແປງຈາກ c89 ປະກອບມີຄວາມສາມາດໃນການຕັດທາງເລືອກແລະຕົວປະຕິບັດການ
(ເຊິ່ງຫຼາຍ c89 ການປະຕິບັດອະນຸຍາດໃຫ້ເຖິງແມ່ນວ່າມັນບໍ່ໄດ້ຖືກລະບຸ), ຄໍາອະທິບາຍ
of −l ເປັນທາງເລືອກແທນທີ່ຈະເປັນ operand, ແລະການດັດແປງເນື້ອໃນຂອງ
ສ່ວນຫ້ອງສະໝຸດມາດຕະຖານເພື່ອບັນຊີສຳລັບສ່ວນຫົວ ແລະທາງເລືອກໃໝ່; ຍົກ​ຕົວ​ຢ່າງ,
ເພີ່ມໃສ່ຄໍາອະທິບາຍຂອງ −l rt, ແລະ −l trace ເພີ່ມສໍາລັບທາງເລືອກການຕິດຕາມ.

POSIX.1-2008 ລະບຸວ່າ c99 utility ຕ້ອງສາມາດນໍາໃຊ້ໄຟລ໌ປົກກະຕິສໍາລັບ *.o
ໄຟລ໌ແລະສໍາລັບ ໄຟລ໌. ການປະຕິບັດແມ່ນບໍ່ເສຍຄ່າເພື່ອຂຽນທັບໄຟລ໌ທີ່ມີຢູ່ແລ້ວຂອງອື່ນໆ
ປະເພດໃນເວລາທີ່ພະຍາຍາມສ້າງໄຟລ໌ວັດຖຸແລະໄຟລ໌ທີ່ປະຕິບັດໄດ້, ແຕ່ບໍ່ຈໍາເປັນຕ້ອງ
ເຮັດແນວນັ້ນ. ຖ້າມີບາງອັນນອກເໜືອໄປຈາກໄຟລ໌ປົກກະຕິຖືກລະບຸໄວ້ ແລະໃຊ້ມັນບໍ່ສຳເລັດ
ເຫດ​ຜົນ, c99 ຈໍາເປັນຕ້ອງໄດ້ອອກຂໍ້ຄວາມວິນິດໄສແລະອອກດ້ວຍການອອກທີ່ບໍ່ແມ່ນສູນ
ສະຖານະ. ແຕ່ສໍາລັບບາງປະເພດໄຟລ໌, ບັນຫາອາດຈະບໍ່ສັງເກດເຫັນເປັນເວລາດົນນານ. ສໍາລັບ
ຕົວຢ່າງ, ຖ້າ FIFO ມີຊື່ ມີ​ຢູ່​ໃນ​ລະ​ບົບ​ປະ​ຈຸ​ບັນ​, c99 ອາດຈະພະຍາຍາມເປີດ
ແລະຈະ hang ໃນ ເປີດ() ໂທຫາຈົນກ່ວາຂະບວນການອື່ນເປີດ FIFO ສໍາລັບການອ່ານ.
ຫຼັງຈາກນັ້ນ, c99 ອາດຈະຂຽນສ່ວນໃຫຍ່ຂອງ ກັບ FIFO ແລະລົ້ມເຫລວໃນເວລາທີ່ມັນພະຍາຍາມຊອກຫາກັບຄືນໄປບ່ອນໃກ້ຊິດ
ໄປຫາຈຸດເລີ່ມຕົ້ນຂອງໄຟລ໌ເພື່ອໃສ່ເວລາ (FIFOs ບໍ່ແມ່ນໄຟລ໌ທີ່ຊອກຫາໄດ້). ໄດ້ c99
ຜົນປະໂຫຍດແມ່ນຍັງອະນຸຍາດໃຫ້ອອກການວິນິດໄສທັນທີຖ້າຫາກວ່າມັນພົບ or *.o
ໄຟລ໌ທີ່ບໍ່ແມ່ນໄຟລ໌ປົກກະຕິ. ສໍາລັບການນໍາໃຊ້ແບບພະກະພາ, ຄໍາຮ້ອງສະຫມັກຄວນຮັບປະກັນວ່າມີ
, −o option-argument, ຫຼື *.o ໄຟລ໌ທີ່ສອດຄ້ອງກັບອັນໃດນຶ່ງ *.ຄ ໄຟລ໌ບໍ່ຂັດກັນ
ກັບຊື່ທີ່ໃຊ້ແລ້ວທີ່ບໍ່ແມ່ນໄຟລ໌ປົກກະຕິຫຼືການເຊື່ອມຕໍ່ສັນຍາລັກທີ່ຊີ້ໃຫ້ເຫັນເຖິງ
ໄຟລ໌ປົກກະຕິ.

ໃນຫຼາຍລະບົບ, ຄໍາຮ້ອງສະຫມັກຫຼາຍກະທູ້ດໍາເນີນການໃນສະພາບແວດລ້ອມການຂຽນໂປຼແກຼມທີ່ເປັນ
ແຕກຕ່າງຈາກທີ່ນໍາໃຊ້ໂດຍຄໍາຮ້ອງສະຫມັກກະທູ້ດຽວ. ການຂຽນໂປລແກລມຫຼາຍກະທູ້ນີ້
ສະ​ພາບ​ແວດ​ລ້ອມ (ນອກ​ເຫນືອ​ໄປ​ຈາກ​ຈໍາ​ເປັນ​ຕ້ອງ​ລະ​ບຸ​ −l pthread ໃນເວລາເຊື່ອມຕໍ່) ອາດຈະຕ້ອງການ
ທຸງເພີ່ມເຕີມທີ່ຈະຖືກກໍານົດເມື່ອສ່ວນຫົວຖືກປະມວນຜົນໃນເວລາລວບລວມ (−D_REENTRANT ເປັນ
ທົ່ວໄປ). ສະພາບແວດລ້ອມການຂຽນໂປລແກລມນີ້ແມ່ນເປັນມຸມສາກກັບການຂຽນໂປລແກລມຂະຫນາດປະເພດ
ສະພາບແວດລ້ອມທີ່ໄດ້ກ່າວມາຂ້າງເທິງແລະລະບຸໄວ້ໃນ ຕາຕະລາງ 4-4, ດໍາເນີນໂຄງການ ສະພາບແວດລ້ອມ: ປະເພດ
ຂະຫນາດ. ສະບັບຂອງມາດຕະຖານນີ້ເພີ່ມ getconf utility calls ສະຫນອງ C compiler
ທຸງ ແລະ ທຸງ linker/loader ທີ່ຈໍາເປັນເພື່ອສະຫນັບສະຫນູນຄໍາຮ້ອງສະຫມັກຫຼາຍກະທູ້. ໃຫ້ສັງເກດວ່າໃນ
ລະບົບທີ່ຄໍາຮ້ອງສະຫມັກກະທູ້ດຽວແມ່ນກໍລະນີພິເສດຂອງຫຼາຍກະທູ້
ຄໍາຮ້ອງສະຫມັກ, ທັງສອງອັນນີ້ getconf ການໂທອາດຈະສົ່ງຄືນ NULL strings; ກ່ຽວກັບການຈັດຕັ້ງປະຕິບັດອື່ນໆ
ທັງສອງສະຕຣິງເຫຼົ່ານີ້ອາດຈະເປັນສະຕຣິງທີ່ບໍ່ແມ່ນ NULL.

ຄະນະກໍາມະການມາດຕະຖານ C ໄດ້ປະດິດ trigraphs (ເຊັ່ນ: "??!" ເປັນຕົວແທນ '|') ໄປ
ແກ້ໄຂບັນຫາການເຄື່ອນທີ່ຂອງລັກສະນະໃນສະພາບແວດລ້ອມການພັດທະນາໂດຍອີງໃສ່ລະດັບຊາດ
ຕົວແປຂອງຊຸດຕົວອັກສອນມາດຕະຖານ ISO/IEC 7:646 1991-bit. ຢ່າງໃດກໍຕາມ, ສະພາບແວດລ້ອມເຫຼົ່ານີ້
ໄດ້ລ້າສະໄຫມແລ້ວໂດຍເວລາທີ່ມາດຕະຖານ ISO C ທໍາອິດຖືກເຜີຍແຜ່, ແລະໃນທາງປະຕິບັດ
trigraphs ຍັງບໍ່ທັນໄດ້ຖືກນໍາໃຊ້ສໍາລັບຈຸດປະສົງຂອງເຂົາເຈົ້າ, ແລະປົກກະຕິແລ້ວແມ່ນມີຈຸດປະສົງທີ່ຈະມີ
ຄວາມຫມາຍຕົ້ນສະບັບຂອງພວກເຂົາຢູ່ໃນ K&R C. ຕົວຢ່າງເຊັ່ນ, ໃນພາກປະຕິບັດ string ແຫຼ່ງພາສາ C ເຊັ່ນ
"ແມ່ນ​ຫຍັງ??!" ປົກກະຕິແລ້ວມີຈຸດປະສົງທີ່ຈະສິ້ນສຸດໃນສອງ ລັກ​ສະ​ນະ​ແລະ​
, ບໍ່ຢູ່ໃນ '|'.

ອະນາຄົດ DIRECTIONS


ບໍ່ມີ.

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


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

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

Linux ຄຳ ສັ່ງ

Ad




×
ການ​ໂຄ​ສະ​ນາ
?ຊື້ເຄື່ອງ, ຈອງ, ຫຼືຊື້ທີ່ນີ້ — ບໍ່ມີຄ່າໃຊ້ຈ່າຍ, ຊ່ວຍໃຫ້ການບໍລິການຟຣີ.