Có thể truyền giá trị từ dòng lệnh cho chương trình C khi thực thi. Giá trị này gọi là tham số dòng lệnh, quan trọng khi muốn điều khiển chương trình từ bên ngoài thay vì hardcode.
Tham số dòng lệnh xử lý qua đối số main() nơi argc là số lượng tham số, argv[] là mảng con trỏ trỏ đến từng tham số. Ví dụ đơn giản kiểm tra tham số từ dòng lệnh:
Ví dụ
#include <stdio.h>
int main(int argc, char *argv[]) {
if(argc == 2) {
printf("Tham số cung cấp: %s\n", argv[1]);
} else if(argc > 2) {
printf("Quá nhiều tham số.\n");
} else {
printf("Mong đợi một tham số.\n");
}
}Kết quả
$./a.out testing Tham số cung cấp là testing
Kết quả
$./a.out testing1 testing2 Quá nhiều tham số cung cấp.
Kết quả
$./a.out Mong đợi một tham số.
Lưu ý: argv[0] chứa tên chương trình, argv[1] con trỏ đến tham số đầu tiên, *argv[n] là tham số cuối. Nếu không tham số, argc = 1; truyền một tham số thì argc = 2.
Các tham số cách nhau bởi khoảng trắng, nhưng nếu tham số có khoảng trắng, đặt trong ngoặc kép "" hoặc nháy đơn ''. Ví dụ in tên chương trình và truyền tham số trong ngoặc kép:
Ví dụ
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("Tên chương trình %s\n", argv[0]);
if(argc == 2) {
printf("Tham số cung cấp: %s\n", argv[1]);
} else if(argc > 2) {
printf("Quá nhiều tham số.\n");
} else {
printf("Mong đợi một tham số.\n");
}
}Kết quả
$./a.out "testing1 testing2" Tên chương trình ./a.out Tham số cung cấp là testing1 testing2