Thread View: es.comp.os.linux.programacion
9 messages
9 total messages
Started by Pere Pujal i Carabantes
Fri, 21 Dec 2007 21:56
Nombre de una funcion
Author: Pere Pujal i Carabantes
Date: Fri, 21 Dec 2007 21:56
Date: Fri, 21 Dec 2007 21:56
20 lines
1579 bytes
1579 bytes
Holas! Cuando se llama a un script bash, $0 nos da el nombre del script. Existe algo similar para una funcion en C que nos de el nombre de la funcion? En caso negativo, conoceis de alguna manera alternativa para que una funcion averigue su nombre? No me vale el meterlo "hardcoded" dentro de ella :) Salut Pere -- sc@fornol.no-ip.org spc@fornol.no-ip.org cs@fornol.no-ip.org cannsp@fornol.no-ip.org spamc@fornol.no-ip.org spmc@fornol.no-ip.org cspam@fornol.no-ip.org cspm@fornol.no-ip.org
Re: Nombre de una funcion
Author: Pedro Maicas
Date: Fri, 21 Dec 2007 22:21
Date: Fri, 21 Dec 2007 22:21
30 lines
1985 bytes
1985 bytes
On Fri, 21 Dec 2007 21:56:07 +0000 (UTC), Pere Pujal i Carabantes <pere@fornol.no-ip.org> wrote: >Cuando se llama a un script bash, $0 nos da el nombre del script. > >Existe algo similar para una funcion en C que nos de el nombre >de la funcion? > >En caso negativo, conoceis de alguna manera alternativa para >que una funcion averigue su nombre? > >No me vale el meterlo "hardcoded" dentro de ella :) No, no existe nada as�, y adem�s no tiene sentido. A veces uno est� acostumbrado a un lenguaje donde se hacen las cosas de determinada manera, y cuando cambia de lenguaje tiede a 'necesitar' cosas que otros programadores en miles de horas dedicadas a este lenguaje no han necesitado nunca. En C por ejemplo puedes usar punteros a funciones, que seguramente es lo que necesitas (como no dices cual es exactamente el problema tampoco se puede asegurar). Saludos :-) -Pedro- http://www.maicas.net/ e-mail en www.maicas.net
Re: Nombre de una funcion
Author: Pere Pujal i Carabantes
Date: Fri, 21 Dec 2007 23:02
Date: Fri, 21 Dec 2007 23:02
61 lines
3197 bytes
3197 bytes
Hola Pedro! El 2007-12-21 Pedro Maicas va escriure en es.comp.os.linux.programacion: > On Fri, 21 Dec 2007 21:56:07 +0000 (UTC), Pere Pujal i Carabantes > <pere@fornol.no-ip.org> wrote: > >Cuando se llama a un script bash, $0 nos da el nombre del script. > > > >Existe algo similar para una funcion en C que nos de el nombre > >de la funcion? > > > >En caso negativo, conoceis de alguna manera alternativa para > >que una funcion averigue su nombre? > > > >No me vale el meterlo "hardcoded" dentro de ella :) > No, no existe nada as�, y adem�s no tiene sentido. > A veces uno est� acostumbrado a un lenguaje donde se hacen las > cosas de determinada manera, y cuando cambia de lenguaje > tiede a 'necesitar' cosas que otros programadores en miles > de horas dedicadas a este lenguaje no han necesitado nunca. > En C por ejemplo puedes usar punteros a funciones, que seguramente > es lo que necesitas (como no dices cual es exactamente el problema > tampoco se puede asegurar). La idea es seguir el hilo de ejecuci�n de un programa gr�fico con la idea final de crear un grabador de macros. El caso es que el programa ya est� creado sin esa idea y es bastante lioso irlo modificando funci�n por funci�n. Pensaba en una o dos lineas en C que inyectaria al inicio de cada funci�n con algun script en sed y que dieran el nombre de la funci�n, sus par�metros, etc. Luego ya me apa�ar�a para convertir la salida del programa en c�digo que pudiera interpretar ese mismo programa. Bueno..., creo que ya he encontrado algo http://gcc.gnu.org/onlinedocs/gcc/Function-Names.html Ahora a ver si lo consigo... > Saludos :-) -Pedro- Salut Pere -- sc@fornol.no-ip.org spc@fornol.no-ip.org cs@fornol.no-ip.org cannsp@fornol.no-ip.org spamc@fornol.no-ip.org spmc@fornol.no-ip.org cspam@fornol.no-ip.org cspm@fornol.no-ip.org
Re: Nombre de una funcion
Author: Iván Sánchez Ortega
Date: Sat, 22 Dec 2007 01:02
Date: Sat, 22 Dec 2007 01:02
19 lines
1488 bytes
1488 bytes
Pere Pujal i Carabantes wrote: > Cuando se llama a un script bash, $0 nos da el nombre del script. > > Existe algo similar para una funcion en C que nos de el nombre > de la funcion? Te acabas de ganar un STFW & RTFM: http://www.delorie.com/gnu/docs/gcc/gcc_78.html ;-) -- ---------------------------------- Iv�n S�nchez Ortega -ivansanchez-algarroba-escomposlinux-punto-org- MSN:i_eat_s_p_a_m_for_breakfast@hotmail.com Jabber:ivansanchez@jabber.org ; ivansanchez@kdetalk.net
Re: Nombre de una funcion
Author: |||RIP|||
Date: Sat, 22 Dec 2007 09:42
Date: Sat, 22 Dec 2007 09:42
21 lines
1406 bytes
1406 bytes
Pere Pujal i Carabantes escribi�:
> Holas!
>
> Cuando se llama a un script bash, $0 nos da el nombre del script.
>
> Existe algo similar para una funcion en C que nos de el nombre
> de la funcion?
>
int main (int argc, char *argv[]) {
.
.
.
}
argc nos da el numero de parametros. Ej: "./programa arg1 arg2", nos
daria 3
argv[] nos da el nombre de esos parametros. Ej: argv[0] daria "programa"
Espero que no me haya confundido, suerte!
Re: Nombre de una funcion
Author: Pedro Maicas
Date: Sat, 22 Dec 2007 10:05
Date: Sat, 22 Dec 2007 10:05
43 lines
2211 bytes
2211 bytes
On Fri, 21 Dec 2007 23:02:10 +0000 (UTC), Pere Pujal i Carabantes
<pere@fornol.no-ip.org> wrote:
>Bueno..., creo que ya he encontrado algo
>
>http://gcc.gnu.org/onlinedocs/gcc/Function-Names.html
>
>Ahora a ver si lo consigo...
>
Pues entonces creo que s� que te sirve eso, que no es
una funcion del c sino una macro del preprocesador,
es decir que es lo mismo que estribir a manubrio el
nombre de la funcion. Te puede servir para hacer
estad�sticas pero no para invocar la funcion.
Por otro lado si solo sabes cuando se entra en
una funcion, y no sabes cuando se sale ....
Quizas se podr�a hacer algo m�s elaborado sustituyendo
los nombres de funcion. Por ejemplo tienes:
void funcion1() {....}
Y lo cambias por _funcion1() {....}
Y creas una nueva funcion:
void function1()
{
entrada("funcion1");
_funcion1();
salida("funcion1");
}
Esta segunda parte igusl se puede simplicar con una macro,
para no tener que teclear tanto.
Saludos :-) -Pedro-
http://www.maicas.net/
e-mail en www.maicas.net
Re: Nombre de una funcion
Author: Luis Colorado
Date: Mon, 24 Dec 2007 00:23
Date: Mon, 24 Dec 2007 00:23
37 lines
2502 bytes
2502 bytes
"Pere Pujal i Carabantes" <pere@fornol.no-ip.org> escribió en el mensaje news:slrnfmodjn.v4d.pere@hola.fou.net...
> Holas!
>
> Cuando se llama a un script bash, $0 nos da el nombre del script.
>
> Existe algo similar para una funcion en C que nos de el nombre
> de la funcion?
Existe algo similar a lo que describes sobre un shell script. Si tienes definida la función main() como:
int main(int argc, char **argv) {...}
entonces argv[0] será el nombre del programa (pero no de la función, ojo) que se está ejecutando.
por otro lado, en gcc existía una macro (que quedó obsoleta, creo) llamada __FUNCTION__ que se
expandía con el nombre de la función, pero como digo ya no se puede usar.
>
> En caso negativo, conoceis de alguna manera alternativa para
> que una funcion averigue su nombre?
>
> No me vale el meterlo "hardcoded" dentro de ella :)
>
>
> Salut
> Pere
> --
> sc@fornol.no-ip.org spc@fornol.no-ip.org
> cs@fornol.no-ip.org cannsp@fornol.no-ip.org
> spamc@fornol.no-ip.org spmc@fornol.no-ip.org
> cspam@fornol.no-ip.org cspm@fornol.no-ip.org
Re: Nombre de una funcion
Author: Luis Colorado
Date: Mon, 24 Dec 2007 00:26
Date: Mon, 24 Dec 2007 00:26
39 lines
2177 bytes
2177 bytes
"Iván Sánchez Ortega" <ivansanchez-alg@rroba-escomposlinux.-.punto.-.org> escribió en el mensaje news:fkhnn2$dls$1@hercules.cohp1...
> Pere Pujal i Carabantes wrote:
>
>> Cuando se llama a un script bash, $0 nos da el nombre del script.
>>
>> Existe algo similar para una funcion en C que nos de el nombre
>> de la funcion?
>
> Te acabas de ganar un STFW & RTFM:
>
> http://www.delorie.com/gnu/docs/gcc/gcc_78.html
Creo que la macro __FUNCTION__ está `deprecated' si no `obsolete' y ya no se puede usar.
en cualquier caso, podría hacer un
int f1(void)
#define FUNCTION_NAME f1
{
...
}
de forma que pueda utilizarlo de forma independiente de la arquitectura (o compilador) en el código.
>
> ;-)
>
> --
> ----------------------------------
> Iván Sánchez Ortega -ivansanchez-algarroba-escomposlinux-punto-org-
>
> MSN:i_eat_s_p_a_m_for_breakfast@hotmail.com
> Jabber:ivansanchez@jabber.org ; ivansanchez@kdetalk.net
Re: Nombre de una funcion
Author: Luis Angel Fdez. Fdez.
Date: Mon, 24 Dec 2007 08:08
Date: Mon, 24 Dec 2007 08:08
36 lines
2510 bytes
2510 bytes
A las 00:26 del Monday 24 de December, Luis Colorado <luis.colorado@hispalinux.es> hablando de Re: Nombre de una funcion en es.comp.os.linux.programacion dijo... > > "Iv�n S�nchez Ortega" <ivansanchez-alg@rroba-escomposlinux.-.punto.-.org> escribi� en el mensaje news:fkhnn2$dls$1@hercules.cohp1... >> Pere Pujal i Carabantes wrote: >> >>> Cuando se llama a un script bash, $0 nos da el nombre del script. >>> >>> Existe algo similar para una funcion en C que nos de el nombre >>> de la funcion? >> >> Te acabas de ganar un STFW & RTFM: >> >> http://www.delorie.com/gnu/docs/gcc/gcc_78.html > > Creo que la macro __FUNCTION__ est� `deprecated' si no > `obsolete' y ya no se puede usar. Seg�n parece, en ello est�n. De todas formas, puede (debe) utilizarse, en caso de que el compilador ya lo soporte: __func__ Seg�n he leido, y si no lo entend� mal, __func__ *no* es una macro. Ta llueu. -- Ubuntu 7.10 (gutsy) (kernel 2.6.22-14-386 i686) GNOME 2.20.1 Intel(R) Pentium(R) M processor (600.000 MHz) up 23:26, 2 users HT: Zanzaborn�n (1457021) X.1762 # http://muxin.no-ip.org/ SK: C.D. Arrancatapinos (18088) IV.57 # Jabber: laffdez@gmail.com
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