argumentos.tex 1.87 KB
Newer Older
1 2 3 4
\documentclass[apostila.tex]{subfiles}


\begin{document}
Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
5

Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
6 7 8
\chapter{Argumentos ARGV e ARGC}

Algumas vezes é necessário que um programa receba argumentos através da linha de comando. Um
9 10
argumento de linha de comando é o texto digitado após o nome de um programa executável (ex.: tar
-czf arquivo1)  arquivo1 é um argumento do programa executável tar).
11

Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
12 13 14
Para obter os argumentos da linha de comando, existem dois parâmetros que podem ser acrescentados
à função main de um programa em C, argc e argv. O parâmetro argc armazenará o número de argumentos
na linha de comando e é um inteiro. Ele será, no mínimo um, já que o nome do programa é qualificado
15 16
como o primeiro argumento.

Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
17
O parâmetro argv é uma matriz de strings. Todos os argumentos da linha de comando são considerados
18 19 20 21
strings.

A forma de declaração será sempre a seguinte:

Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
22 23 24
\begin{lstlisting}
int main(int argc, char *argv[])
\end{lstlisting}
25

Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
26 27
Observe que os nomes argc e argv são absolutamente arbitrários. Você poderé atribuir qualquer nome
que preferir.
28 29


Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
30
\lstinputlisting{exemplos/argumentos.c}
31 32 33 34

Saída: Suponha que o programa acima se chama alo e foi chamado da seguinte forma:
alo Fulano
A saída será:
Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
35
Alo Fulano.
36 37 38 39 40 41 42
Dada a seguinte linha de comando:

prog exec arg1 arg2 arg3 ... argn
Os argumentos arg[1..n] estarão, respetivamente, nas posições 1, 2, 3, ..n do vetor argv.
Portanto, argv[1] é o primeiro argumento passado na chamada do programa.


Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
43
\section{Exercício}
44

Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
45 46
Faça um programa que receba três argumentos na linha de comando. O primeiro argumento será algum
operador aritmético( +,\-,\/,\*) e o segundo e o terceiro argumento serão números.
47 48

O programa deverá imprimir na tela o resultado da operação do segundo argumento pelo terceiro.
Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
49
exemplo: Suponha que o programa seja chamado opera:
50 51

opera + 2 3 ( deverá imprimir na tela 5
Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
52
opera * 5 5 ( deverá imprimir na tela 25
53

Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
54 55


56
\end{document}
Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
57