C:
การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ
วิธีทำ:
ในภาษา C, ฟังก์ชัน main
สามารถออกแบบมาเพื่อรับอาร์กิวเมนต์จากบรรทัดคำสั่งโดยใช้พารามิเตอร์ int argc
และ char *argv[]
ที่นี่ argc
หมายถึงจำนวนอาร์กิวเมนต์ที่ส่งผ่านมา และ argv
เป็นอาร์เรย์ของตัวชี้สตริงที่แสดงรายการทุกอาร์กิวเมนต์ นี่คือตัวอย่างเพื่อแสดง:
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("ชื่อโปรแกรม: %s\n", argv[0]);
printf("จำนวนอาร์กิวเมนต์: %d\n", argc - 1);
for (int i = 1; i < argc; i++) {
printf("อาร์กิวเมนต์ %d: %s\n", i, argv[i]);
}
return 0;
}
การใช้โค้ดข้างต้น เมื่อโปรแกรมถูกเรียกใช้เป็น ./programName -a example
, ผลลัพธ์จะเป็น:
ชื่อโปรแกรม: ./programName
จำนวนอาร์กิวเมนต์: 2
อาร์กิวเมนต์ 1: -a
อาร์กิวเมนต์ 2: example
นี้แสดงให้เห็นวิธีที่อาร์กิวเมนต์บรรทัดคำสั่งสามารถแยกและใช้ได้ในโปรแกรม C
ลงลึก
การปฏิบัติธรรมของการส่งอาร์กิวเมนต์ไปยังโปรแกรมมีมาตั้งแต่วันแรกๆ ของ Unix. ในวิธีการแบบดั้งเดิมนี้ argc
และ argv
มอบอินเตอร์เฟซที่ง่ายแต่ทรงพลังสำหรับการโต้ตอบกับบรรทัดคำสั่ง อิงตามปรัชญาของ Unix ที่เน้นความเป็นยูทิลิตี้ขนาดเล็กแต่ทำงานร่วมกันได้ดี ในขณะที่ภาษาสมัยใหม่มักเสนอไลบรารี่หรือเฟรมเวิร์กที่ซับซ้อนกว่าสำหรับการแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่ง ความตรงไปตรงมาของวิธีการ C นั้นมอบความโปร่งใสและการควบคุมที่ไม่มีใครเทียบได้
ในการพัฒนาล่าสุด ไลบรารี่เช่น getopt
ในระบบ POSIX ได้พัฒนาขึ้นเพื่อรองรับความต้องการการแยกวิเคราะห์ที่ซับซ้อนขึ้น เช่น การจัดการชื่อตัวเลือกที่ยาวหรือค่าเริ่มต้นสำหรับอาร์กิวเมนต์ที่ขาดหายไป อย่างไรก็ตาม เครื่องมือพื้นฐานของ argc
และ argv
ยังคงเป็นสิ่งสำคัญในการเข้าใจว่าโปรแกรมโต้ตอบกับสภาพแวดล้อมการทำงานของตนในภาษา C อย่างไร
ผู้วิจารณ์อาจโต้แย้งว่าการจัดการกับ argc
และ argv
โดยตรงอาจเกิดข้อผิดพลาดได้ ผลักดันให้ใช้การทรงตนในระดับที่สูงขึ้น อย่างไรก็ตาม สำหรับผู้ที่ต้องการทำความเข้าใจความละเอียดอ่อนของภาษา C และข้อดีของการปฏิบัติงานในระดับต่ำ การเรียนรู้การแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่งถือเป็นขั้นตอนที่สำคัญ การผสมผสานนี้ระหว่างวิธีการทางประวัติศาสตร์และประโยชน์ใช้สอยในทางปฏิบัติครอบคลุมสิ่งที่ทำให้ภาษา C ยังคงมีความน่าสนใจในการเขียนโปรแกรมระบบและการพัฒนาซอฟต์แวร์