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 - 0xDani

#791
La duda es: ¿como se cambia una variable de entorno en linux mediante codigo C/C++? A ser posible sin tener que llamar a system().

Saludos.
#792
Cita de: Stakewinner00 en 18 Octubre 2012, 22:56 PM
eso de k son cosas básicas puede ser pero hay gente k como yo que aprendemos solos y sabemos programar en C++ y no sabemos demasiada teoría, y creo que ese es su caso XD

[broma]Incorrecto, me lei bastantes capitulos de C++ con Clase  :P[/broma]. No, mi pregunta no era esa, la pregunta es si yo tengo un -124, y se que se le sumo 7 para obtenerlo, el tipo se ha desbordado pero como obtengo el numero original? Puede parecer una tonteria, quiza es que ya estoy bloqueado con esto pero no me sale  :xD.

Saludos.
#793
El compilador es GCC, haciendo algunas pruebas he comprobado que si a una variable de tipo char le sumo 1 pasa a valer -128.
#794
Bueno la cuestion es: yo leo un byte de un archivo, lo almaceno en una variable tipo char, le sumo un numero del 1 al 11, y se pasa de 127, es decir, se desborda el tipo. Luego escribo ese byte a otro archivo. Y otra aplicacion que lea ese archivo y conozca que numero se le sumo a ese byte, ¿como lo vuelve a convertir en el original, si se desbordo el tipo?

Quiza no me he explicado muy bien, si no lo entienden pregunten.

Saludos.
#795
Usa etiquetas GeSHi para el codigo, asi es ilegible.
#796
Pon algo de codigo, por que no se como estas haciendo la entrada de datos a la vez que lees del socket.
#797
Programación C/C++ / Re: flooder
17 Octubre 2012, 14:03 PM
Despues de añadir bastante codigo para comprobar errores me ha quedado esto:

#include <unistd.h>
#include <stdio.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>

int main(int argc, char *argv[])
{
  char request[1024];
  struct hostent *host = gethostbyname(argv[1]);
  if(!host)
  {
    printf("No se ha podido resolver la direccion del servidor\n");
    _exit(1);
  }
  printf("host->h_addr: %s\n", inet_ntoa(*((struct in_addr *)host->h_addr)));
  struct sockaddr_in sock;
  sock.sin_family = AF_INET;
  sock.sin_port = htonl(atoi(argv[2]));
  sock.sin_addr.s_addr = inet_addr(inet_ntoa(*((struct in_addr *)host->h_addr)));
  printf("Direccion: %d\n", sock.sin_addr.s_addr);

int sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sockfd==-1)
{
  printf("No se pudo crear el socket\n");
  _exit(3);
}
printf("Socket creado\n");
int aux;
printf("Conectando...\n");
if(connect(sockfd, (struct sockaddr*) &sock, sizeof(struct sockaddr)))
{
  printf("No se pudo conectar al servidor\n");
  _exit(2);
}
printf("Conectado\n");
sprintf(request, "GET / HTTP/1.1\nHost: %s\nUser-Agent: Mozilla/4.0\n\n ", host->h_name);
printf("Peticion en request\n");
for(aux=0; aux<3; aux++)
{
   write(sockfd, request, strlen(request));
   printf("%i peticion", aux);
}
  close(sockfd);
return 0;
}


La salida:

$ ./flooder www.marca.com 80
host->h_addr: 193.110.128.199
20480
Direccion: -947884351
Socket creado
Conectando...
//Y tras varios minutos...
No se pudo conectar al servidor


Nunca llega a conectar, no se porque.
#798
Programación C/C++ / Re: contraseñas
17 Octubre 2012, 12:09 PM
Cita de: Puntoinfinito en 17 Octubre 2012, 00:33 AM
Sé que lo unico que voy a hacer va a ser poner otra duda más en cuestion xD

La parte de

FILE *fichero = fopen("contrasen.txt", "wt");

Lo que has echo es abrir para el programa "contrasen.txt" para que el puedo interaccionar en el, pero la pregunta es, hace falta indicar la ruta de "contrasen.txt"? Porque veo que tu no has puesto ninguna...

Saludos y espero respuesta:)

PD: Perdón por las molestias xD

Eso depende del sistema operativo, pero normalmente si no especificas ruta se supone que el archivo ha de estar en el mismo directorio que el ejecutable.

Saludos.
#799
El tamaño del tipo int es variable dependiendo de la plataforma en la que estes, pero en la mayoria es de 4 bytes, 2 bytes suele ser un short. De todas formas podeis averiguar el tamaño de los tipos en vuestros ordenadores usando el operador sizeof().

Saludos.
#800
Programación C/C++ / Re: contraseñas
16 Octubre 2012, 15:40 PM
1.- La variable resultado no te hace falta, fgets te almacena el resultado en el primer parametro.
2.- En esta linea:
Código (cpp) [Seleccionar]
if(getchar()==resultado)

Intentas comparar un caracter que te devuelve getchar() con una cadena que es innecesaria, la puedes sustituir por contra. En C/C++ para comparar cadenas tienes la funcion strcmp(), en string.h/cstring.

Saludos.