Argc 및 Argv C++

Argc 및 Argv C++

2022-06-04 last update

5 minutes reading C++
C++ 프로그램을 작성할 때, 우리는'main ()'함수가 매우 중요하다는 것을 알고 있다. 왜냐하면 이 함수의 실현이 부족하면 프로그램을 컴파일할 수 없기 때문이다.C++의 다른 모든 함수와 마찬가지로'main ()'함수도 인자를 받아들일 수 있습니다.단, 매개 변수를'main ()'함수에 전달하는 것과 매개 변수를 다른 함수에 전달하는 것의 차이점은 이전 상황에서 명령행을 통해 매개 변수를 전달해야 한다는 것이다.이것은 "main ()"함수 자체가 드라이버 함수이기 때문이다. 이것이 바로 다른 함수가 그것을 호출하여 매개 변수를 전달할 수 없는 이유이다.본고에서 우리는'main()'함수의 두 가지 매개 변수, 즉 Ubuntu 20.04에서 C++의'argc'와'argv'를 토론할 것이다.

Ubuntu 20.04의 C++의 Argc와 Argv는 무엇입니까?


"argc"매개 변수는 매개 변수 계수를 가리키며, "argv"는 문자 그룹을 가리키며, C++에서 프로그램을 실행할 때 명령줄을 통해 "main ()"함수에 전달되는 모든 매개 변수를 저장합니다.여기, "argc"는 항상 매개 변수 계수를 "1"으로 표시하고, 실제 전달된 매개 변수 수가 아니라는 것을 알아야 합니다.객체 파일의 이름도 명령행 매개변수로 계산되기 때문입니다.모든 데이터 형식에 속하는 명령줄 파라미터를'main ()'함수에 전달할 수 있습니다."main ()"함수의 원형에서 이 인자에 접근하려면 이 인자에 주의하십시오.그러나 이 두 개의 매개 변수가 없으면'main ()'함수는 잘 작동할 수 있습니다.이것은 본고의 다음 절에서 토론한 다음에 우리는 계속해서 Ubuntu 20.04의 C++에서 이 두 가지 매개 변수를 사용할 것이다.

C++에는 Argc 및 Argv의 주 함수가 없습니다.


우선, 매개 변수 "argc"와 "argv"를 사용하지 않아도 C++의 "main ()"함수가 잘 작동할 수 있음을 알려드리고 싶습니다.이것은 다음 C++ 프로그램에 설명되어 있습니다.

이 프로그램에는 간단한 "main ()"함수가 있습니다. 매개 변수가 없습니다.이 "main ()"함수에서, 우리는 터미널에서만 예시 메시지를 인쇄합니다.
그리고 우리는 아래에 언급한 명령의 도움말로 이 기본적인 C++ 프로그램을 컴파일했다.
$ g++ CommandLine.cpp –o CommandLine

그런 다음 다음 다음 명령을 실행하여 프로그램을 실행합니다.
$ ./CommandLine

이 간단한 C++ 프로그램의 출력은 다음 그림과 같습니다.

명령줄 매개변수를 전달하지 않고 C++ 프로그램을 실행합니다.


현재, 우리는 C++ 프로그램을 실현할 것입니다. 이 프로그램에서'main ()'함수는 매개 변수인'argc'와'argv'를 받아들일 수 있지만, 터미널에서 이 프로그램을 실행할 때, 이 매개 변수를 전달하지 않습니다.다음 그림에서 설명한 C++ 프로그램은 다음과 같습니다.

이 C++ 프로그램에서 우리의'main ()'함수는'argc'와'argv'인자를 받아들일 수 있습니다.그러나 이 특정한 예시에서 우리는 이 값을 전달하려고 하지 않기 때문에, "argc"를 "0"으로 균형 있게 해서 그 값을 인쇄하려고 시도할 때, 그 어떠한 쓰레기 값도 되돌려 주지 않을 것입니다.이후에 우리는 터미널에서 "argc"파라미터의 값을 인쇄했다.그리고 나서 우리는 "for"순환을 사용하여 터미널에 모든 명령행 파라미터를 인쇄합니다.
다음과 같은 명령을 사용하여 이 코드를 컴파일했습니다.
$ g++ CommandLine.cpp –o CommandLine

그리고 이 프로그램을 실행하려고 할 때, 다음 명령에서 보듯이 명령행 매개 변수를 전달하지 않았습니다.
$ ./CommandLine

다음 그림에서 보듯이 이 C++ 프로그램의 출력에서 이 함수에 명령행 매개 변수를 전달하지 않았습니다. 매개 변수는'0'이고, 터미널에 매개 변수를 인쇄하지 않았습니다. 문자 그룹'argv'도 비어 있기 때문입니다.

정형 명령줄 매개변수를 사용하여 C++ 프로그램을 실행하려면 다음과 같이 하십시오.


이제 정수 형식의 명령행 매개 변수를 전달하여 같은 C++ 프로그램을 실행하고자 합니다.그러나 그 전에 다음 그림과 같이 코드를 약간 수정할 것입니다.

이 코드에 대한 유일한 수정은 코드에서 줄 "argc=0"을 삭제하는 것입니다. 왜냐하면 이 예에서 우리는 실행할 때 이 프로그램에 전달되는 명령줄 파라미터의 실제 수량을 인쇄하기를 원하기 때문입니다.코드의 나머지 부분은 이전 절에서 사용한 것과 완전히 같다.
다음과 같은 명령을 사용하여 수정된 코드를 다시 컴파일했습니다.
$ g++ CommandLine.cpp –o CommandLine

그리고 이 코드를 실행하기 위해 다음 명령행 매개 변수를 사용했습니다.
$ ./CommandLine 1 2 3

이것은 C++ 프로그램을 실행할 때, 우리는 그것에 세 가지 정수 유형의 명령행 매개 변수, 즉 1, 2, 3을 전달했다는 것을 의미한다.
이 수정 프로그램의 출력은 다음 그림과 같습니다.

이 C++ 프로그램이 반환하는 매개 변수의 총수는 "4"입니다. 즉, 우리가 전달한 세 개의 정수 매개 변수 + 대상 파일의 이름입니다.이 프로그램은 터미널에서 "argv"문자 그룹의 요소, 즉 실행할 때 이 프로그램에 전달되는 실제 정수 형식 매개 변수와 프로그램 이름을 출력합니다.

C++ 프로그램을 실행하려면 문자 유형 명령행 매개변수를 사용합니다.


현재, 우리는 우리가 같은 C++ 프로그램에 문자 형식의 명령행 파라미터를 전달해서 그것을 실행하려고 할 때, 그것이 정상적으로 작동하는지 보고 싶다.이를 위해, 우리는 더 이상 그것을 수정할 필요가 없다.다음과 같이 문자 유형의 명령행 매개 변수를 사용하여 수행합니다.
$ ./CommandLine a b c d e f

이것은 C++ 프로그램을 실행할 때, 우리는 이미 그것에 여섯 개의 문자 형식의 명령행 매개 변수, 즉 a, b, C, d, e와 f를 전달했다는 것을 의미한다.
문자 유형 명령행 매개변수를 동일한 C++ 프로그램에 전달하면 다음과 같은 출력이 발생합니다.

이 C++ 프로그램이 반환하는 매개 변수의 총 수는 "7"입니다. 즉, 우리가 전달한 여섯 문자의 매개 변수 + 대상 파일의 이름입니다.이 프로그램은 터미널에서 "argv"문자 그룹의 요소, 즉 실행할 때 이 프로그램에 전달되는 실제 문자 형식 파라미터와 프로그램 이름을 인쇄합니다.

결론:


본고는 두 명령행 매개 변수를 토론하고자 하는데,'main ()'함수의 매개 변수, 즉,'argc'와'argv'라고 부른다.우리는 이 두 파라미터의 용법을 설명함으로써 이 두 파라미터의 중요성을 토론한다.그리고 Ubuntu 20.04에서 C++에서'argc'와'argv'의 사용법을 설명하는 몇 가지 예시를 공유했습니다.그 밖에 우리는 이 매개 변수를 사용하지 않아도'main ()'함수가 잘 작동할 수 있음을 분명히 했다.따라서 본문을 읽은 후에 당신은'argc'와'argv'가 C++에서 사용하는 방법을 잘 알게 될 것입니다.