Getopt
é um pouco exagerado para obter apenas um argumento de linha de comando. Se o seu programa exigir mais opções e argumentos posteriormente, você poderá considerar algo semelhante a getopt
. Para uma maneira mais orientada para C ++ de analisar linhas de comando mais complicadas, talvez você queira dar uma olhada no Biblioteca Boost Program Options . A maioria das linguagens (Java, Perl, Python, C, C ++, Pascal, etc etc) tem uma biblioteca de funções ou instruções que retornam os argumentos da linha de comando.
Em C ou C ++, você pode simplesmente converter o primeiro argumento "10" ou o que for, para um inteiro. Todos os argumentos da linha de comando são strings ( char
arrays terminados com um byte zero).
Algo parecido com isto:
-
Adicione o código ao seu programa principal para verificar o argumento da linha de comando, algo como:
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;
-
Adicione o diretório onde o arquivo
newpass
é armazenado na sua variávelPATH
, por exemplo, assumindo quenewpass
está localizado no diretório$HOME/bin
:
PATH="$PATH:$HOME/bin"
-
Altere os modos de arquivo do arquivo
newpass
comchmod
:%chmod +x newpass