Thread View: es.comp.os.linux.programacion
3 messages
3 total messages
Started by teoria
Tue, 05 Sep 2006 18:52
getopt
Author: teoria
Date: Tue, 05 Sep 2006 18:52
Date: Tue, 05 Sep 2006 18:52
13 lines
1631 bytes
1631 bytes
Hola. Queria que alguien me explicara como usar la funcion getopt para la siguiente cosa: 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. No se si me expliqué bien. Por ahi con un ejemplo se me aclaran las cosas Salu2
Re: getopt
Author: 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/
Re: getopt
Author: teoria
Date: Thu, 07 Sep 2006 06:04
Date: Thu, 07 Sep 2006 06:04
5 lines
1440 bytes
1440 bytes
Muchas gracias Oscar por el ejemplo. Ahora entendi un poco más. Mi problema si lleva dos argumentos. Ahora me voy a poner a ver la pagina 3 del man. Salu2
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads