Linux 可执行文件,怎么传入参数
时间: 2023-05-24 16:06:08 浏览: 79
Linux 可执行文件可以通过命令行传入参数,常用的方法有以下两种:
1. 在可执行文件后面直接跟上参数,多个参数之间用空格隔开,例如:
```
./myprogram arg1 arg2 arg3
```
在程序中可以使用 `argc` 和 `argv` 两个参数来接收这些参数,其中 `argc` 表示参数个数,`argv` 是一个字符串数组,保存了每个参数的值。比如以下程序可以输出所有传入的参数:
```c++
#include <iostream>
int main(int argc, char* argv[]) {
for (int i = 0; i < argc; i++) {
std::cout << "Argument " << i << ": " << argv[i] << std::endl;
}
return 0;
}
```
2. 使用标志参数,标志参数通常以破折号开头,后面跟参数值,例如:
```
./myprogram -a arg1 -b arg2 -c
```
在程序中可以使用 getopt 或 getopt_long 函数来解析这些参数,这两个函数可以帮助程序员方便地处理命令行参数,不过使用它们需要引入头文件 `getopt.h`。以下是使用 getopt 函数处理命令行参数的示例程序:
```c++
#include <iostream>
#include <unistd.h>
int main(int argc, char* argv[]) {
int opt;
while ((opt = getopt(argc, argv, "abc:")) != -1) {
switch (opt) {
case 'a':
std::cout << "-a parameter was passed." << std::endl;
break;
case 'b':
std::cout << "-b parameter was passed." << std::endl;
break;
case 'c':
std::cout << "-c parameter was passed with value " << optarg << std::endl;
break;
default:
std::cout << "Unknown parameter " << opt << std::endl;
return 1;
}
}
return 0;
}
```
在命令行中使用 `-a`、`-b`、`-c` 参数来传递参数,其中 `-c` 后面的参数值可以在程序中使用 optarg 变量获取。