Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - AlbertoBSD

#1511
Cual es el codigo que las lee y cual es que las manda a pantalla?
#1513
Cosas como esta deberian de ganarse el premio a la mejor... si a la mejor estupidez..

Como las impresoras que no imprimen despues de cierto numero de hojas. O los multifuncionales que no escanean si no tienen tinta.

Que hara falta para que los fabricantes de estas cosaa entiendan que estan creando 2 kilos de pura basura...
#1514
Que protocolo es?

The recv() call is normally used only on a connected socket (see)    connect(2)).

Si llamaste a connect antes?

Tienes que validar el resultado de connect antes de llamar a recv. Para el resultado de connect.

If the connection or binding succeeds, zero is returned. On error, -1 is returned, and errno is set appropriately.
#1515

Para leer desde sockets he aprendido mucho del manual de desarrollador de freebsd.

https://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/sockets-essential-functions.html

Ahi encuentas un cliente y servidor datetime...

asi mismo algunas llamadas pueden ser distintas en Linux.

En lo personal prefiero migrar el file descriptor con fdopen
client = fdopen(c, "w")

a una estructura tipo FILE.

y usar fwrite para escribir sobre ella o fread para leer desde ella.

saludos

#1516
Hola muchas veces me a pasado que abro un hilo y mientraa lo estoy editando encuentro el problema.

Que bueno que solucionaste tu problema.

Muy buena libreria yo la use para hacer un.bot de telegram.

Saludos
#1517
Posiblemente el socket ae cerro por algun error o no le estas pasando los parametros correctos.

No es necesario que pegues todo el codigo solo la linea involucrada y sus variables..
#1518
 si te fijas solo se le agrego
Cadena::

Si no, no serian parte de la clase. y tendrias que llamartla sin el punto
asi esta
cadena.fragmentar(var);

tendrias que llamarla

fragmentar(var);

Saludos.
#1519
La idea es depurar la asignacion de momeria.

Tengo un programa algo grande que necestito depurar. El programa usa memoria dinamica todo el tiempo y en general el programa funciona bien.

Sin embargo segun mis calculos el programa esa usando mas memoria de la que necesita. Algunos megas de mas  :laugh: :laugh:

Reemplace las llamadas a free, malloc y calloc por unas funciones para ir depurando cada que se reserva o libera memoria.

¿Alguno de ustedes ha hecho algo parecido?

¿Alguna sugerencia algun cambio?

Tengo el siguiente codigo:



char **punteros;
size_t *contador_size;
size_t offset_contador = 0;
size_t contador_memoria = 0;

void _free_( char *ptr) {
remove_contador(ptr);
free(ptr);
}

char *_calloc_(size_t nmemb, size_t size) {
char *ptr;
ptr = calloc(nmemb,size);
add_contador(ptr,nmemb*size);
return ptr;
}
void add_contador(char *ptr,size_t size) {
printf("add_contador: %u [0x%x] %u + %u bytes\n",offset_contador,ptr,contador_memoria,size);
punteros = realloc(punteros,(offset_contador+1)*sizeof(char*));
contador_size = realloc(contador_size,(offset_contador+1)*sizeof(size_t));
punteros[offset_contador] = ptr;
contador_size[offset_contador] = size;
contador_memoria+=size;
offset_contador++;
}

void remove_contador(char *ptr) {
size_t i = 0;
while(punteros[i] != ptr && i < offset_contador) {
i++;
}
printf("remove_contador: %u [0x%x]\n",i,ptr);
contador_memoria-=contador_size[i];
while(i < offset_contador-1) {
punteros[i] = punteros[i+1];
contador_size[i] = contador_size[i+1];
i++;
}
punteros[i] = NULL;
contador_size[i] = 0;
offset_contador--;
}


Al final solo tenemos que validar la variable contador_memoria para saber cuantos bytes quedan y offset_contador para saber cuantos apuntadore quedan.

Saludos
#1520
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main() {
int i=1, a;
char *prompt="[*]:>";
char comando[256];
char *token[12];
while(i==1) {
printf("%s",prompt);
fgets(comando,256,stdin);
a = 0;
token[a]=strtok(comando," ");
a = 1;
while(token[a-1] != NULL && a < 12){
printf("Token: %s\n",token[a-1]);
token[a]=strtok(NULL," ");
a++;

}
memset(token,0,sizeof(char *)*12);
memset(comando,0,256);
}
}


Cambie un poco el codigo.

Saludos!