将参数从bash传递给C.

时间:2017-04-03 21:10:16

标签: c bash unix arguments

如何将bash命令中的参数传递给c?

中的程序

例如,如果我有一个看起来像这样的命令:

./c_program argument

如何在C程序中访问该参数? 我可以像bash一样使用$ 1等变量吗?

2 个答案:

答案 0 :(得分:1)

尝试以下代码,看看它在不同数量的参数中的表现如何:

C:\Users\...> webdriver-manager start --ignore_ssl
events.js:163
      throw er; // Unhandled 'error' event
      ^

Error: self signed certificate in certificate chain
    at TLSSocket.<anonymous> (_tls_wrap.js:1084:38)
    at emitNone (events.js:86:13)
    at TLSSocket.emit (events.js:188:7)
    at TLSSocket._finishInit (_tls_wrap.js:606:8)
    at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:436:38)

答案 1 :(得分:0)

正如 Stephan Lechner 在其代码中所述,您使用变量argcargv。首先,您必须在代码中使用int main(int argc, char **argv) {来获取这些变量。 char **argv可能会有所不同,即char *argv[]有效,const char *argv[]

也有效

char **argv本质上是strings的数组,但这种字符串更好地称为char array(&#39;字符数组的缩写&#39;)。你会想要使用它:

int option1 = 0;
for(int i = 1; i < argc; i++) {
  if(strcmp(argv[i], "--the-input-you-were-expecting-here") == 0)
    option1 = 1;
}

注意:argv包含命令的 ./ c_program 部分作为第一个索引,如果您的命令为{{1,则argv[0]的结果将等于"./c_program" }}