C의 명령줄 인수 설명

게시 됨: 2022-04-29

명령줄 인수는 프로그램이 내부가 아닌 외부에서 제어되어야 할 때 사용됩니다. 인수가 기본 메서드에 직접 전달되는 개발자를 위한 텍스트 인터페이스입니다.

함수가 호출될 때 함수 내에서 전달되는 값을 인수라고 합니다. 즉, 인수는 호출될 때 지정된 메소드에 전달되는 매개변수입니다.

구문 :

정수 메인() { /* ... */ }

위의 코드는 명령을 수신하고 컴퓨터의 운영 체제에 전달하여 실행합니다. 이러한 명령은 코드가 실행될 때 항상 호출됩니다.

CC 및 C++ 명령줄 인수는 단순하고 쉽게 해독할 수 있는 구문으로 인해 구현하기가 매우 쉽습니다.

명령줄 인수를 전달하려면 기본 함수를 두 개의 인수로 정의해야 합니다.

  1. 명령줄 인수의 총 수
  2. 명령줄 인수의 전체 목록

구문 :

int main(int argc, char *argv[]) { /* ... */ }

  1. argc(ARGument Count) 는 명령줄 인수의 총 개수를 저장하는 정수 데이터 형식으로 정의됩니다. 당연히 이것은 항상 음수가 아닌 값이어야 합니다.
  2. argv(ARGument Vector) 는 명령줄 인수의 전체 목록을 저장하는 데 사용되는 문자 데이터 유형의 포인터 배열을 나타냅니다.

명령줄을 사용하여 개발자는 컴퓨터에 있는 다양한 파일과 폴더에 액세스할 수 있습니다. 여러 명령줄 인수를 포함하는 지정된 프로그램은 지정된 데이터의 소스 또는 대상을 빠르게 식별할 수 있습니다. 또한 프로그램의 기능을 변경할 가능성도 있습니다. 빌드 프로세스를 소스 제어에 더 쉽게 넣을 수 있습니다.

개발 분야에서 다양한 작업에는 실제 시각화가 필요하지 않습니다. 이러한 경우 명령줄 인수를 사용하여 모든 기능을 수행할 수 있습니다. 리터럴 그래픽 인터페이스에 대한 요구 사항은 매우 드뭅니다. 이것은 많은 재정, 노력 및 자원을 절약하는 데 도움이 됩니다.

세계 최고의 대학에서 온라인 소프트웨어 개발 과정을 배우십시오. 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

목차

속성 | C의 명령줄 인수

명령줄 인수에는 몇 가지 흥미롭고 유용한 속성이 있습니다. 그것들은 다음과 같습니다:

  • 프로그램 이름을 인쇄하려면 명령이 argv[0] 이어야 합니다.
  • argv[argc] 는 본질적으로 널 포인터입니다.
  • 사용자가 제공하는 첫 번째 인수를 인쇄하려면 명령이 argv[1] 이어야 합니다.
  • 사용자는 터미널에서 명령줄 인수를 전달합니다.
  • 이 명령을 사용하면 프로그램 내부의 값을 하드 코딩하는 대신 외부에서 프로그램을 제어할 수 있습니다.
  • 명령줄 인수는 항상 main() 함수에 전달됩니다.
  • 첫 번째 명령 토지 인수는 argv[1]이고 마지막 명령은 argv[n]입니다.

명령줄 인수의 예

다음은 C의 명령줄 인수에 대한 데모 프로그램입니다.

// 설명을 위한 C 프로그램

// 명령줄 인수

#include<stdio.h>

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

{

정수 카운터;

printf("프로그램 이름: %s",argv[0]);

if(argc==1)

printf("\n프로그램 이름 이외의 추가 명령줄 인수가 전달되지 않았습니다.");

if(argc>=2)

{

printf("\n전달된 인수 수: %d",argc);

printf("\n—-다음은 명령줄 인수가 전달되었습니다--");

for(카운터=0;카운터<argc;카운터++)

printf("\nargv[%d]: %s",counter,argv[counter]);

}

반환 0;

}

출력은 다양한 시나리오에 따라 다릅니다. 그것들은 개별적으로 더 설명되었습니다.

  1. 인수 없이:

다음 출력을 생성하려면 인수를 전달하지 않고 코드를 실행해야 합니다.

출력 1

$ ./a.out

프로그램 이름: ./a.out

프로그램 이름 외에 전달된 추가 명령줄 인수가 없습니다.

  • 세 가지 인수:

다음 출력을 생성하려면 세 개의 인수로 코드를 실행해야 합니다.

출력 2 –

$ ./a.out 첫 번째 두 번째 세 번째

프로그램 이름: ./a.out

통과된 인수 수: 4

—-다음은 전달된 명령줄 인수입니다—-

argv[0]: ./a.out

argv[1]: 첫 번째

argv[2]: 초

argv[3]: 세 번째

  • 단일 인수:

코드는 다음 출력을 생성하기 위해 따옴표 안에 있는 동안 공백으로 구분되어야 하는 단일 인수로 컴파일 및 실행되어야 합니다.

출력 3 –

$ ./a.out “첫 번째 두 번째 세 번째.”

프로그램 이름: ./a.out

통과된 인수 수: 2

—-다음은 전달된 명령줄 인수입니다—-

argv[0]: ./a.out

argv[1]: 첫 번째 두 번째 세 번째

  • 따옴표로 묶고 공백으로 구분된 단일 인수 사용:

코드는 다음 출력을 생성하기 위해 공백으로 구분되지만 작은 따옴표 안에 있는 단일 인수로 컴파일 및 실행되어야 합니다.

출력 4 –

$ ./a.out '첫 번째 두 번째 세 번째'

프로그램 이름: ./a.out

통과된 인수 수: 2

—-다음은 전달된 명령줄 인수입니다—-

argv[0]: ./a.out

argv[1]: 첫 번째 두 번째 세 번째

C에서 명령줄 인수의 장점

C에서 명령줄 인수를 사용하면 다음과 같은 몇 가지 이점이 있습니다.

  • C의 명령줄 인수는 프로그래머나 사용자가 내부적으로 값을 전달하는 대신 내부에서 프로그램으로 값을 전달하고자 할 때 사용할 수 있습니다.
  • 명령줄 응용 프로그램은 배치 파일이나 스크립트에서 매우 쉽게 사용할 수 있습니다. 이것은 자동화된 테스트 또는 빌드와 관련하여 큰 도움이 됩니다.
  • 프로그래머가 도구를 사용하는 대신 작성하면 명령줄을 개발하기가 더 쉽습니다. 인수를 입력하는 것은 텍스트 스트림을 출력하는 것보다 훨씬 더 복잡하고 시간이 많이 걸리는 작업으로 간주됩니다.
  • 다양한 파일 및 응용 프로그램에서 정보를 보내거나 받을 수 있는 경우 입력, 출력 및 오류 스트림을 매우 쉽게 리디렉션할 수 있습니다.
  • 명령줄 인수의 오류 반환 메커니즘은 매우 표준적이고 간단합니다.
  • 프로그래머나 사용자가 집이나 이동 중에 액세스 권한을 얻으려고 할 때 기본적으로 이동 중에 원격 셸 또는 기타 유사한 연결을 통해 사용하면 최소한의 작업을 더 쉽게 수행할 수 있습니다.
  • 여러 파일을 지정하는 기능을 위해 정의된 와일드카드 구문 표준이 존재하며, 이는 개발자 또는 프로그래머의 기존 지식을 기반으로 합니다.
  • 명령줄은 강력하고 매우 빠릅니다.

다양한 명령줄 인수의 장점에 대해 설명하면 다음은 이를 구현하는 방법에 대한 또 다른 자세한 예 또는 데모입니다.

#include <stdio.h>

#포함 <conio.h>

// 명령줄 인수가 프로그램에 전달되는 main 메서드가 호출됩니다.

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

{

//정수 변수가 정의됨

정수

//프로그램에 전달된 인수의 개수가 2보다 크거나 같은지 확인하는 조건이 적용되고 조건이 true이면 프로그램에 전달된 명령줄 인수가 인쇄됩니다. 그렇지 않으면 프로그램에 전달된 인수가 인쇄되지 않습니다.

if(인수 >= 2)

{

printf("프로그램에 전달된 인수는 다음과 같습니다.\n");

for(a = 1; a < argc; a++)

{

printf("프로그램에 전달된 인수: %s\t", argv[a]);

}

}

또 다른

{

printf("프로그램에 인수가 전달되지 않았습니다\n");

}

반환 0;

}

산출:

프로그램에 인수가 전달되지 않습니다.

명령줄 인수는 main 메서드를 호출하여 위에서 언급한 코드의 프로그램에 전달됩니다. 다음 단계는 정수 변수의 정의입니다. 다음으로, 프로그램에 전달된 인수 수가 2보다 크거나 같은지 확인하기 위해 조건이 전달됩니다. 조건이 true이면 프로그램에 전달된 명령줄 인수가 인쇄됩니다. 그렇지 않으면 프로그램에 인수가 전달되지 않고 인쇄됩니다.

결론

upGrad의 소프트웨어 개발 PG 프로그램 – 전체 스택 개발 전문화에 등록하여 C 및 C++에서 명령줄 인수의 중요성에 대해 자세히 알아보십시오 . 13개월 과정은 IT 전문가 지망생이 Java, Spring, Hibernate, HTML, React, Git 및 기타 다양한 프로그래밍 언어와 도구를 마스터하여 Quora 및 Swiggy와 같은 복잡한 애플리케이션을 구축할 수 있도록 돕도록 설계되었습니다.

이 프로그램은 또한 데이터 과학 및 기계 학습 분야에서 4개월 간의 무료 경영진 인증을 제공합니다.

C에서 명령줄 인수를 구현하는 동안 프로그래머가 직면해야 하는 기본적인 단점은 무엇입니까?

C의 명령줄 인수는 개발자와 프로그래머에게 편리하지만 몇 가지 단점이 있습니다. 기본 지식이 없고 이러한 명령으로 작업하는 데 익숙하지 않은 사람들은 특히 단기간에 배우고 적응하기가 상당히 어려울 수 있습니다. 그러나 이것은 숙련된 프로그래머와 개발자에게는 문제가 되지 않습니다. 그러나 다른 분야나 인접 분야에서 온 후배들에게는 때때로 방해가 됩니다. 또한 명령줄 인수를 구현하고 실행하려면 키보드가 필요합니다. 누군가가 휴대폰이나 iPad 등을 통해 액세스해야 하는 경우 종종 장벽이 됩니다.

명령줄 인수를 구분하는 데 사용되는 구분 기호는 무엇입니까?

명령줄 인수를 구분하기 위해 일반적으로 공백이 사용됩니다. 매개변수에서 명령 이름을 분리하고 다양한 매개변수를 서로 분리합니다. 다른 값 목록을 분리할 때도 유용합니다. 다중 공백은 일반적으로 단일 공백으로 처리됩니다. 이에 대한 유일한 예외는 따옴표로 묶인 문자열이나 작은 따옴표로 묶인 주석에서 발생합니다.

명령줄 인수를 변환할 수 있습니까?

모든 명령줄 인수는 문자열로 전달됩니다. 숫자 값은 항상 수동 작업을 사용하여 프로그래머나 사용자가 내부 형식으로 변환해야 합니다. 주 함수는 항상 문자열의 배열인 매개변수를 받습니다. 이것은 주 함수가 허용하는 유일한 함수 인수입니다. 문자열 데이터 유형은 명령줄 인수를 저장하는 동안 사용됩니다.