실행 가능한 명령 프로그램에서 명령줄 플래그 또는 옵션을 얻는 방법

실행 가능한 명령 프로그램에서 명령줄 플래그 또는 옵션을 얻는 방법

나는 실행할 때마다 새로운 비밀번호를 생성하고, 비밀번호 길이를 묻고, 새로운 의사 무작위 비밀번호를 생성하는 연습용 C++ 프로그램을 만들었습니다.

모든 디렉터리에서 실행할 수 있도록 해당 디렉터리를 PATH 환경 변수에 추가했습니다.

다음을 통해 터미널에서 호출할 수 있도록 명령줄 인수를 가져오기 위해 실행 파일을 수정하는 방법을 알고 싶습니다.

newpass -10
또는
newpass 10

둘 다 10자의 비밀번호를 생성합니다. 현재 프로그램을 다음과 같이 실행해야 하는 대상 파일로 가지고 있습니다.

./newpass

답변1

Getopt단 하나의 명령줄 인수를 얻는 것은 약간 과잉입니다. 나중에 프로그램에 더 많은 옵션과 매개변수가 필요한 경우 getopt.부스트 계획 옵션도서관. 대부분의 언어(Java, Perl, Python, C, C++, Pascal 등)에는 명령줄 인수를 반환하는 함수 또는 명령문 라이브러리가 있습니다.

C 또는 C++에서는 첫 번째 인수 "10"이나 다른 인수를 정수로 간단히 변환할 수 있습니다. 모든 명령줄 인수는 문자열( char0으로 끝나는 배열)입니다.

이 같은:

  1. 명령줄 인수를 확인하려면 기본 프로그램에 코드를 추가하세요. 예:

    int pwlength(10); // or whatever the default
    if (argc > 1) {
         // put code here to convert the string in argv[0] to an integer
         // and store in pwlength.
         // If the string cannot be converted,
         //    Print an error message and exit the program with
         //    the statement "return 1;" or "exit(1);" which
         //    notifies the caller of the executable that an error occurred.
     }
    std::cout << "Your password length will be: " << pwlength << std::endl;
    
  2. 다음에 추가목차파일이 변수 newpass에 저장되는 위치입니다. 예를 들어 해당 파일이 디렉터리에 있다고 가정해 보겠습니다 .PATHnewpass$HOME/bin
    PATH="$PATH:$HOME/bin"

  3. newpass파일의 파일 모드를 변경하려면 다음 명령을 사용하십시오 chmod.
    chmod +x newpass

답변2

뻔뻔하게 여기에서 복사했습니다.프로그램을 어디서나 실행 가능하게 만드는 방법

"명령줄에 내보내기만 입력하면 PATH=$PATH:</path/to/file>세션 기간 동안에만 지속됩니다.

영구적으로 변경하려면 PATH=$PATH:</path/to/file>~/.bashrc 파일에 내보내기를 추가하세요(마지막에만). " -오아담스

관련 정보