<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
Muchas gracias Steven, como siempre ayudando al necesitado, sabía que
ese operador en algún momento lo había tenido que ocupar pero no me
acordaba para que servía.<br>
<br>
Estoy revisando un código que sirve para recuperar el estatus de
termino de hilos y aparecen otras notaciones que desconozco:<br>
<br>
1.- Esto aparece en una librería .h. ¿Para que son los puntos
suspensivos?<br>
<br>
void err_dump(const char *, ...); /* {App misc_source} */<br>
void err_msg(const char *, ...);<br>
<b>void err_quit(const char *, ...);</b><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
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>
El asunto es que esa función es ocupada para analizar el el retorno de
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
lanza el siguiente error:<br>
<br>
carlos$ <b>cc exitstatus.c -l pthread -o exitstatus</b><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 agradecería
nuevamente, adjunto los archivos. En caso contrario no hay problema,
creo que sobreviviré al certamen de mañana (o eso espero).<br>
<br>
Miguel<br>
<br>
<br>
<br>
On 08/10/10 01:50, Steven Davidson wrote:
<blockquote cite="mid:4CAEB11D.9030004@njit.edu" type="cite">Hola
Miguel,
<br>
<br>
On 10/8/2010 1:41 AM, Miguel Olave wrote:
<br>
<blockquote type="cite">Esop!!
<br>
<br>
He buscado pero no encuentro que hace esta notación:
<br>
<br>
i ^= 1;
<br>
<br>
hice un pequeño programa para ver si lo descubria pero no "me o
<br>
entender"
<br>
<br>
#include <stdio.h>
<br>
<br>
int main(){
<br>
int i=0, z=1, j;
<br>
<br>
for(j=0;i<10;i++){
<br>
i ^= 1;
<br>
z ^= 1;
<br>
printf("i:%d, z:%d\n",i,z);
<br>
}
<br>
}
<br>
Resultado:
<br>
i:1, z:0
<br>
i:3, z:1
<br>
i:5, z:0
<br>
i:7, z:1
<br>
i:9, z:0
<br>
<br>
Demás que alguien sabe y puede decirme en un par de líneas sin perder
<br>
mucho tiempo.
<br>
<br>
</blockquote>
<br>
El operador ^= es el equivalente a hacer dos operaciones: ^ (XOR: OR
eXclusivo) y = (asignación). Para información acerca del operador ^,
consulta el capítulo 18 de nuestro curso de C++:
<a class="moz-txt-link-freetext" href="http://c.conclase.net/curso/index.php?cap=018#inicio">http://c.conclase.net/curso/index.php?cap=018#inicio</a>
<br>
<br>
Brevemente, este operador es a nivel de bits. Te doy la tabla de
verdad, pero con bits, para entender esta operación:
<br>
<br>
A | B | A ^ B
<br>
---+---+-------
<br>
0 | 0 | 0
<br>
1 | 0 | 1
<br>
0 | 1 | 1
<br>
1 | 1 | 0
<br>
<br>
Si ambos bits son iguales, entonces el resultado es 0; de lo contrario,
es 1.
<br>
<br>
<br>
Espero haber aclarado el asunto.
<br>
<br>
Steven
<br>
<br>
<br>
_______________________________________________
<br>
Lista de correo Cconclase <a class="moz-txt-link-abbreviated" href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a>
<br>
<a class="moz-txt-link-freetext" href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a>
<br>
Bajas: <a class="moz-txt-link-freetext" href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a>
<br>
</blockquote>
<br>
</body>
</html>