Article View: es.comp.os.linux.programacion
Article #850Re: getopt
From: Oscar Garcia
Date: Tue, 05 Sep 2006 19:23
Date: Tue, 05 Sep 2006 19:23
64 lines
2833 bytes
2833 bytes
On 5 Sep 2006 11:52:23 -0700, "teoria" <teoriaderedes@gmail.com>
wrote:
>quiero ejecutar un programa y pasarle dos parametros y luego tener esos
>parametros como int
>Ejemplo:
>$ ./ejemplo -s 2 5
>y luego poder usar el 2 y el 5 para que mi programa con esos numeros
>haga algo que yo le especifique. Algo lei que hay una variable que se
>llama optarg que apunta al primer valor, pero no entend� bien como se
>usa.
Lo que no entiendo es si la opci�n -s tiene como par�metro un n�mero o
dos. Si tiene dos n�meros como par�metros te recomiendo que dividas el
argumento en dos, ya que getopt no permite usar dos par�metros para
una opci�n.
En caso de que -s vaya por separado entonces no debes preocuparte por
los n�meros ya que se te quedar�n disponibles como argumentos usando
argv y argc como antiguamente.
>No se si me expliqu� bien.
Le falta algo :)
>Por ahi con un ejemplo se me aclaran las cosas
Tienes un ejemplo muy claro en:
man 3 getopt
Si a�n y as� no lo pillas te intento explicar un poco como va.
Argumentos:
-h: ayuda
-n: escribe el n�mero entero multiplicado por dos.
while ((opcion = getopt_long (argc, argv, "hn:")) != -1) {
switch (opcion) {
case 'h':
// Muestro la ayuda
break;
case 'n':
numero = atoi (optarg);
introducido = true;
break;
default:
// Falta alg�n argumento o se ha introducido uno inexistente
// Dar un error y mostrar la ayuda seria de ayuda
// opcionalmente se puede salir del programa
}
}
if (introducido) {
printf ("Doble: $d\n", numero * 2);
} else {
// mostrar un error diciendo que no hemos introducido el numero
}
>Salu2
Saludos.
--
�scar Javier Garc�a Baudet
LinaresDigital
http://redstar.linaresdigital.com/
Technical Details
Message-ID:
<hqirf2lc42skv1ug9jdjvvuspkn6k67ad4@4ax.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!peer01.cox.net!cox.net!antonio.escomposlinux.org!cernicalo.escomposlinux.org!escomposlinux.org!not-for-mailReferences:
<1157482343.807391.243220@m79g2000cwm.googlegroups.com>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,f16c2fb068825204 X-Google-Attributes: gidf86c8,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!peer01.cox.net!cox.net!antonio.escomposlinux.org!cernicalo.escomposlinux.org!escomposlinux.org!not-for-mail From: Oscar Garcia <redstarQUITARSPAM23@terra.es> Newsgroups: es.comp.os.linux.programacion Subject: Re: getopt Date: Tue, 05 Sep 2006 21:23:28 +0200 Organization: Ecolnet Lines: 64 Message-ID: <hqirf2lc42skv1ug9jdjvvuspkn6k67ad4@4ax.com> References: <1157482343.807391.243220@m79g2000cwm.googlegroups.com> NNTP-Posting-Host: 87.217.171.192 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: cormoran.emeteo.local 1157484201 27402 87.217.171.192 (5 Sep 2006 19:23:21 GMT) X-Complaints-To: emeteo@escomposlinux.org NNTP-Posting-Date: Tue, 5 Sep 2006 19:23:21 +0000 (UTC) X-Newsreader: Forte Free Agent 3.3/32.846