รายการอาร์กิวเมนต์

เมื่อเราใช้เรียกใช้งานโปรแกรมบน shell prompt เราสามารถเพิ่มข้อมูลบางอย่างให้กับโปรแกรมเพื่อใช้ในการทำงานได้โดยการพิมพ์ข้อมูลเพิ่มเติมต่อท้ายชื่อโปรแกรม อาจเป็นข้อมูลที่เป็นคำๆ เดียวหรือหลายๆ คำก็ได้ โดยใช้ช่องว่างเป็นตัวแบ่งคำนั้นๆ (หากเป็นกลุ่มคำที่มีช่องว่าปรากฏอยู่สามารถใช้เครื่องหมายอัญประกาศ ("...") ครอบข้อมูลชุดนั้นได้เช่น "debian club" เป็นต้น) เราจะเรียกข้อมูลเหล่านี้ว่า "command-line arguments" ตัวอย่างการใช้งานคำสั่ง ls

$ ls -al /

เมื่อ shell เรียกใช้งานโปรแกรม ข้อมูลที่ปรากฏอยู่บน command line ทั้งหมดจะเป็นรายการอาร์กิวเมนท์สำหรับโปรแกรมที่เรียกใช้งงาน ประกอบด้วย ชื่อของโปรแกรม และ command-line arguments ต่างๆ ที่พิมพ์ลงไป จากตัวอย่างการใช้งานคำสั่ง ls รายการอาร์กิวเมนต์จะมีข้อมูล 3 ชุดประกอบไปด้วย "ls" "-al" และ "/" ตามลำดับ โดยที่ชุดแรกจะเป็นชื่อโปรแกรมเสมอ
เราสามารถใช้งานอาร์กิวเมนต์เหล่านี้ได้ในฟังก์ชันเมนผ่านทางพารามิเตอร์ argc และ argv (ซึ่งการใช้งานพารามิเตอร์ดังกล่าวจะต้องระบุชื่อลงไปในฟังก์ชันเมนด้วย เช่น main(int argc, char** argv) หากไม่ระบุจะไม่สามารถใช้งานได้)
พารามิเตอร์ตัวแรกคือ argc จะเป็นตัวแปรที่มีชนิดข้อมูลเป็น Integer เป็นตัวแปรที่ระบุจำนวนของอาร์กิวเมนต์ทั้งหมดที่อยู่ในรายการ พารามิเตอร์ที่สองคือ argv เป็นอาร์เรย์ของสตริง(NUL-terminated character strings)โดยมีขนาดเท่ากับที่ระบุไว้ใน argc

ตัวอย่างโปรแกรม

// test_cmd_list.cpp
#include <iostream>
using namespace std;

int main (int argc, char** argv)
{
  cout << "argc is "< 1) {
    cout << "The arguments are:\n";

    for (int i = 1; i < argc; ++i)
	cout << ' ' << argv[i] << endl;
  }
  return 0;
}

ตัวอย่างการใช้งาน

$ g++ test_cmd_list.cpp -o cmd_list
$ ./cmd_list www "debian club" .com
argc is 4
The name of this program is './a.out'.
This program was invoked with 3 arguments.
The arguments are:
 www
 debian club
 .com
Taxonomy upgrade extras: 
Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้