main 函數的入口參數

來源:互聯網
上載者:User
Main函數參數argc,argv說明

Wikipedia,自由的百科全書

C/C++語言中的main函數,經常帶有參數argc,argv,如下:

int main(int argc, char** argv)

int main(int argc, char* argv[])

這兩個參數的作用是什麼呢?argc 是指命令列輸入參數的個數,argv儲存了所有的命令列參數。假如你的程式是hello.exe,如果在命令列運行該程式,(首先應該在命令列下用 cd 命令進入到 hello.exe 檔所在目錄) 運行命令為:

hello.exe Shiqi Yu

那麼,argc的值是 3,argv[0]是"hello.exe",argv[1]是"Shiqi",argv[2]是"Yu"。 

下面的程式示範argc和argv的使用:

#include <stdio.h>int main(int argc, char ** argv){    int i;    for (i=0; i < argc; i++)        printf("Argument %d is %s./n", i, argv[i]);    return 0;}

假如上述代碼編譯為hello.exe,那麼運行

hello.exe a b c d e

將得到

Argument 0 is hello.exe.Argument 1 is a.Argument 2 is b.Argument 3 is c.Argument 4 is d.Argument 5 is e.

運行

hello.exe lena.jpg

將得到

Argument 0 is hello.exe.Argument 1 is lena.jpg.
================================
#include <stdio.h>
#include <sys/shm.h>
#include <string.h>
int main(int argc ,char * argv[])
{
 int i;
 
 char arg[6][15]={0};
 printf("argc : %d /n",argc);
 for(i=0;i<argc;i++)
 {
  sprintf(arg[i],"%s" ,argv[i]);
 } 
 //for(i=1;i<4;i++)
 // printf("%s/n",arg[i]);
  execlp("/bin/mkdir","mkdir",arg[1],NULL);
 return 1;
}
======================================
清單 2. BusyBox 使用 argv[0] 來確定調用哪個應用程式
// test.c#include <stdio.h>int main( int argc, char *argv[] ){  int i;  for (i = 0 ; i < argc ; i++) {    printf("argv[%d] = %s/n", i, argv[i]);  }  return 0;}

 
// test.c#include <stdio.h>int main( int argc, char *argv[] ){  int i;  for (i = 0 ; i < argc ; i++) {    printf("argv[%d] = %s/n", i, argv[i]);  }  return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.