Por qu'e resulta tan fácil cuando te explican. Parecen hasta tontas las preguntas. Muchas gracias Steven me ahorraste horas de búsqueda. <br><br><div class="gmail_quote">2010/10/8 Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu">srd4121@njit.edu</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hola Miguel,<div class="im"><br>
<br>
On 10/8/2010 3:10 AM, Miguel Olave wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Muchas gracias Steven, como siempre ayudando al necesitado, sabía que<br>
ese operador en algún momento lo había tenido que ocupar pero no me<br>
acordaba para que servía.<br>
<br>
</blockquote>
<br></div>
De nada; para eso estoy :)<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Estoy revisando un código que sirve para recuperar el estatus de<br>
termino de hilos y aparecen otras notaciones que desconozco:<br>
<br>
1.- Esto aparece en una librería .h. ¿Para que son los puntos<br>
suspensivos?<br>
<br>
</blockquote>
<br></div>
Es la forma de indicar a C/C++ que la función acepta una cantidad variable de argumentos. Por ejemplo, 'printf()' y 'scanf()' funcionan de esta manera. Lo más seguro es que estas funciones funcionan (valga la redundancia) similarmente a las anteriores. Pasas una cadena que representa un formato para indicar a la función cuántos parámetros posteriores vas a pasar y cómo deben ser interpretados.<br>

<br>
Para más información acerca de la creación de este tipo de funciones, consulta el capítulo 20: <a href="http://c.conclase.net/curso/index.php?cap=020b#PAR_VARIABLES" target="_blank">http://c.conclase.net/curso/index.php?cap=020b#PAR_VARIABLES</a><div class="im">
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
void err_dump(const char *, ...); /* {App misc_source} */<br>
void err_msg(const char *, ...);<br>
void err_quit(const char *, ...);<br>
void err_exit(int, const char *, ...);<br>
void err_ret(const char *, ...);<br>
void err_sys(const char *, ...);<br>
<br>
void log_msg(const char *, ...); /* {App misc_source} */<br>
void log_open(const char *, int, int);<br>
void log_quit(const char *, ...);<br>
void log_ret(const char *, ...);<br>
void log_sys(const char *, ...);<br>
<br>
2.- Lo otro es que aparece el siguiente código que no se me hubiese<br>
ocurrido posible. Retornar en una función void de esta forma, :<br>
<br>
void *<br>
thr_fn1(void *arg)<br>
{<br>
printf("thread 1 returning\n");<br>
return((void *)1);<br>
}<br>
<br>
</blockquote>
<br></div>
Puedes retornar lo que quieras, todo depende de la interpretación que apliques.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
El asunto es que esa función es ocupada para analizar el el retorno de<br>
una hebra<br>
err = pthread_create(&tid1, NULL, thr_fn1, NULL);<br>
if (err != 0)<br>
err_quit("can't create thread 1: %s\n", strerror(err));<br>
err = pthread_join(tid1, &tret);<br>
if (err != 0)<br>
err_quit("can't join with thread 1: %s\n", strerror(err));<br>
<br>
En este punto pthread_join puede manejar ese tipo de retornos??<br>
<br>
Lo pregunto porque no he podido compilar los archivos debido a que me<br>
lanza el siguiente error:<br>
<br>
carlos$ *cc exitstatus.c -l pthread -o exitstatus*<br>
/tmp/ccQGYKoy.o: In function `main':<br>
exitstatus.c:(.text+0x87): undefined reference to `err_quit'<br>
exitstatus.c:(.text+0xd2): undefined reference to `err_quit'<br>
exitstatus.c:(.text+0x10d): undefined reference to `err_quit'<br>
exitstatus.c:(.text+0x15f): undefined reference to `err_quit'<br>
collect2: ld returned 1 exit status<br>
<br>
Si alguien pudiese jugar y compilarlos y pillar el error lo<br>
agradecería nuevamente, adjunto los archivos. En caso contrario no<br>
hay problema, creo que sobreviviré al certamen de mañana (o eso<br>
espero).<br>
<br>
</blockquote>
<br></div>
Tienes errores de enlazado. Esto significa que no has enlazado la biblioteca requerida que contiene las implementaciones de 'err_quit()'.<br>
<br>
<br>
Espero que todo esto te ayude.<div><div class="h5"><br>
<br>
Steven<br>
<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br>