Ligue para o uso da função getOpt

Ligue para o uso da função getOpt
A maioria de nós sabe como podemos usar argumentos em nosso programa, mas se começarmos a usar muitos argumentos e tentar manter a ordem correta e o número de argumentos, ele fará um quebra -cabeça para o usuário. Para evitar um obstáculo, usaremos diferentes "opções". Por exemplo, "ls -l" aqui "-l" é uma opção. Podemos usar vários argumentos e usá -los como opções em vários pedidos. Também vimos isso com o nosso compilador GCC neste artigo. Além disso, podemos usar muitas opções e utilizá -las de acordo com nossas necessidades.

Sintaxe:

Ambos 'argc ' e 'argv ' são os parâmetros para a declaração de contagem, conforme aceito pela função principal (). 'Optsstring'É o argumento de uma string que deve reconhecer os personagens das opções. Qualquer personagem rastreado por um cólon ':' é considerado um argumento. 'Optind' é a variável inicializada que é considerada um índice para o próximo elemento em que está na fila a seguir para o processamento.

Objetivo de usar o GETOpt em C:

A função getOpt () está embutida em c que é usado para analisar argumentos da linha de comando.

Valor de retorno na função getOpt ()

  1. GetOpt () retornará '-1' se não houver mais opções para processar.
  2. GetOpt () retornará '?'Se uma opção que está sendo processada não for reconhecível.
  3. GetOpt () retorna “:” em vez de '?'Se o usuário não inserir nenhum valor para o argumento.

Se o getOpt () se deparar com um personagem de opção que não estiver no 'OptString', ele retornará o ('?') Personagem como uma saída. Se um argumento está faltando como uma opção, ele deve devolver um cólon (':') como uma saída. GetOpt () definirá a variável 'optopt' para o caractere selecionado que desencadeou o erro em ambos os casos. O getOpt () imprimirá correspondentemente uma mensagem indicativa para o stderr na sintaxe definida para o utilitário 'getopts' se a variável 'opterr' não estiver definida como 0 e o caráter inicial de 'optstring' não for um cólon.

A função getOpt () não precisa ser reentrada. A segurança do thread não é obrigatória para uma função que não deve ser reentrada.

Exemplo de getOpt () em C:

Vamos fazer um programa simples que aceite os usuários como -u e -g para o grupo. Primeiro de tudo, você precisa incluir o arquivo de cabeçalho para a funcionalidade getOpt ().

#incluir
#incluir


Vamos configurar a função principal onde temos 'argc' como inteiro e matriz de personagens como '** argv'. Agora, aqui, configuraremos algumas variáveis ​​e definiremos um nome inteiro option_index = 0; Porque cada um dos argumentos que vamos fornecer terá um número de índice para que possamos iterá -lo através de todos os argumentos. Estamos definindo ou inicializando para 0 para parar o aviso, porque podemos estar usando uma variável não inicializada.

# Char *user_name = null;

Como não temos um tipo de dados de string em C, configuramos uma matriz de caracteres para '-u' para tomar o nome de usuário como uma entrada e iniciá-lo com um valor nulo.

Agora entraremos em um loop de tempo, e isso nos permitirá ler todos os argumentos se alguma opção tiver sido definida. Como nas condições, precisamos de nossos parênteses para incluí -lo com um valor verdadeiro que, em nosso caso, é "option_index = getOpt (argc, argv", gu: ")". Usaremos o getOpt () para considerar nosso argumento como 'argc' e lemos em nossa matriz 'argv' para definir as opções. Da mesma forma, aqui está uma opção “Gu:” E colocamos um cólon depois da bandeira “u”. O ':' depois que o valor da bandeira indica que ele adquire um argumento. Não importa em que ordem você coloca as opções, mas importa que você coloque um cólon depois das opções.

Agora teremos uma declaração de comutação em nosso loop enquanto examinaremos o valor armazenado no índice da variável "option_index". Estamos examinando cada item para cada caso.

Primeiro definiremos o caso em que definimos “user_name = optarg”. As opções podem ser usadas para ler o usuário que adicionamos como uma entrada ao digitar 'u'. Também precisamos indicar que terminamos neste caso, e fazemos isso no idioma C usando 'quebra' após cada caso no final.

Da mesma forma, usamos o segundo caso em que, se o usuário entrar 'g', ele será indicado que ele selecionou o grupo e nós quebramos essa declaração também.

Agora, no último caso, estamos usando -o para qualquer outra opção, que no nosso caso pode ser qualquer erro. Podemos pegar isso com 'padrão:' e podemos passar e especificar se a opção inválida é identificada ou inserida. Exibiremos declarações impressas com "opção incorreta".

Nós também vamos fazer um pouco de diversidade. Esperamos que você não tenha visto antes que esse seja o valor de retorno. Se colocarmos o valor de retorno em 1, deixaremos a função principal. Nosso programa reportará um erro, o que significa que executamos o programa incorretamente, para que não queira retornar 0, então deixamos o programa em seu ponto.

Agora já fechamos todos os blocos e garantimos que geralmente voltamos aos colchetes principais. O programa normalmente retorna 0 valor à função principal. Agora, controlamos com sucesso a operação de falha por nosso programa.

Vamos ver se nosso programa funciona; Depois de digitar o código a seguir, gostaríamos que você colocasse este comando na linha de comando. Usamos o GCC e fomos direto para o código -fonte 'Option_Program.C 'e depois usado "-o" para opções. Depois disso, será um argumento, e aqui 'simples' é uma saída.

Depois de executar nosso 'GCC Simple_Option.C -o simples -wall ' Comando com sucesso, agora passamos e corremos com uma opção incorreta que é '-h'. Usar “-h” como uma opção nos dará um erro porque enviamos uma opção incorreta. Também podemos usar os dois argumentos, obtendo o resultado de acordo.

Aqui podemos ver se queremos saber como nosso último programa foi executado. Se você digitar “Echo $?”E, se retornar 0, significa que o último programa foi executado com sucesso e se ele retornar 1 como você pode ver na imagem acima, o que significa que a última execução do programa é falhada.

Conclusão:

Este artigo teve como objetivo dar uma compreensão melhor e mais clara da função getOpt (), para que você possa melhorar seu código Legabilidade e melhorar a reutilização do código. Discutimos um exemplo simples com sintaxe. O artigo ajudará você a obter um conhecimento muito sólido e uma compreensão de como usar o getOpt () como uma função. Diferentes argumentos como parâmetros foram discutidos para fazer melhor uso da função.