Latest web development tutorials

C 명령 줄 매개 변수

프로그램을 실행하면 명령 줄은 C 프로그램에 값을 전달할 수 있습니다. 이 값은명령 행 인수라고합니다, 그들은 당신이 값이 하드 코딩 된 경우가 아닌 코드에서 외부 프로그램에서 제어 할 특히, 프로그램에 중요한, 그것은 특히 중요하다.

커맨드 라인 파라미터는 argc 전달파라미터의 수를 의미하며,매개 변수를 처리하는 주 () 함수를사용하는것이다는 argv [] 프로그램 포인트에 전달되는 파라미터의 각각은 포인터 배열이다. 다음은 간단한 예에서는, 파라미터들에 따라 인수가 제공되는 명령 행이 있는지 여부를 확인하고 적절한 동작을 수행 할 수있다 :

#include <stdio.h>

int main( int argc, char *argv[] )  
{
   if( argc == 2 )
   {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 )
   {
      printf("Too many arguments supplied.\n");
   }
   else
   {
      printf("One argument expected.\n");
   }
}

, 매개 변수를 사용하여 컴파일하고 위의 코드를 실행, 그것은 다음과 같은 결과를 생성합니다 :

$./a.out testing
The argument supplied is testing

두 개의 인수, 컴파일하고 위의 코드를 실행, 그것은 다음과 같은 결과를 생성합니다 :

$./a.out testing1 testing2
Too many arguments supplied.

모든 매개 변수를 전달 컴파일하고 위의 코드를 실행하지 마십시오, 그것은 다음과 같은 결과를 생성합니다 :

$./a.out
One argument expected

이 [0]는 argv프로그램의 이름을 저장하기 위해, 주목해야는argv [1] 첫 번째 명령 줄 인수 포인터에 대한 포인터 * argv와는 [N] 마지막 파라미터이다. 인수가없는 경우는 argc는매개 변수를 전달하는 경우는 argc는 2로 설정 될 것이다, 그렇지 않으면 1. 것이다.

A A 공백으로 구분 명령 줄 매개 변수의 복수,하지만 사이에 매개 변수가 내부 ''큰 따옴표 ""또는 작은 따옴표로 배치해야 할 때 공간이 인수 자체가, 다음 매개 변수를 전달합니다. 이제 위의 예를 다시 보자, 공간이, 당신은보기는 두 번 또는 작은 따옴표를 넣을 수 있습니다. "" "." 의 따옴표 명령 줄 매개 변수 내에 배치 프로그램을 통과, 위의 예를 다시 보자

#include <stdio.h>

int main( int argc, char *argv[] )  
{
   printf("Program name %s\n", argv[0]);
 
   if( argc == 2 )
   {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 )
   {
      printf("Too many arguments supplied.\n");
   }
   else
   {
      printf("One argument expected.\n");
   }
}

간단한 공백으로 구분 매개 변수를 따옴표로 묶여 매개 변수를 사용하여 컴파일하고 위의 코드를 실행, 그것은 다음과 같은 결과를 생성합니다 :

$./a.out "testing1 testing2"

Progranm name ./a.out
The argument supplied is testing1 testing2