ejecutar desde acceso directo < Red Hat 9 >

Horst von Brand vonbrand en inf.utfsm.cl
Lun Oct 18 16:16:06 CLST 2004


"rodrigo ahumada" <rodahum1978 en hotmail.com> dijo:
> "Roberto Leiva M" <rlm en floresinternacional.cl> dijo:
> >Gracias, ahora la aplicacion inicia, el problema es que esta toma archivos 
> >de inicializacion, y al ejecutarla mediante un acceso directo no encuantra 
> >estos archivos, es posible darle la ruta donde se encuantran los archivos 
> >dentro de las propiedades del acceso directo ?

> man getenv y getenv("HOME") por si los archivos son por usuario

Exacto. Ojo, revisa que te entrega tu ambiente grafico en el ambiente, no
tiene porque ser igual a lo que entrega el shell.

> argv[0]: es la linea de comando con que se llamo al programa,

Nope. El arreglo argv contiene los argumentos. Supongamos llamas:

      ls -la uno dos

enonces tienes:

 argv[0]: Nombre del programa (generalmente, ver abajo)		"ls"
 argv[1]: 1er argumento						"-la"
 argv[2]: 2o argumento						"uno"	
 argv[3]: 3er argumento						"dos"
 argv[4]: NULL, si tiene 3 argumentos

Notese que al ejecutar el programa (via exec(3)) das el nombre del programa
(o la ruta completa), y luego el arreglo de argumentos completo, incluyendo
argv[0]. O sea, es perfectamente posible llamar p.ej. a nash(1) diciendole
en argv[0] que se llama a "modprobe", y este darse cuenta de la jugarreta
(es lo que se hace en initrd ;-) y actuar en consecuencia.

[Me parece que nash(1) puede ser un Red Hat/Fedora-ismo, asi que es
 posible que no este en todas las distros. En resumen, es un shell
 sumamente simple que trae empotrados (subconjuntos de) los comandos
 tipicos como ls(1). La idea es tener _un_ ejecutable (estatico) chico con
 todo lo que se necesita]

>                                                               generalmente 
> cuando uno pone un lanzador, lleva la ruta completa

Bien posible. En todo caso, no es algo en que deba confiarse (ver arriba).

> parece que getenv["_"] es igual que argv[0]

Lo que un shell (o ambiente grafico) ponga alli (o no ponga nada) hay que
corroborarlo con la documentacion del caso. Usar "esta variable de ambiente
parece que contiene lo que busco" es receta garantizada de desastre futuro,
cuando pongan otra cosa o la omitan en la version siguiente.

PS: Al que reclamaba que no aprendia nada aca: Aprendio esto? Cuidado, la
    prueba mensual ya viene...
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


Más información sobre la lista de distribución Linux