La funzione inet_aton causa un segmantation fault al client della chat che sto cercando di creare. Mi spiego meglio:
codice:
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <signal.h>
#define N_PORTA 1999
#define BUFFER 1024
void handler( int sign ) ;
int main(){
char buffer[BUFFER];
int sock ,pid_padre ;
struct sigaction new_handler;
struct sockaddr_in server_option ;
char server_addr_dd [] = "127.0.0.1"; //indirizzo server formato dotted decimal
system("clear");
new_handler . sa_handler = handler;
/** Creazione socket */
if ( (sock = socket( PF_INET , SOCK_STREAM , 0 ) ) < 0 ) {
perror ( "Socket creation error" ) ;
exit ( -1 ) ;
}
/** Trasformazione indirizzo dotted_decimal in un indirizzo IP */
printf("ciao1");
getchar();
if ( (inet_aton ( server_addr_dd, server_option.sin_addr )) == 1 ) {
perror ( "Conversione IP non riuscita" ) ;
exit ( -1 );
}
printf("ciao2");
getchar();
Praticamente, l'output del programma dovrebbe essere ciao1 ciao2, invece si ferma a ciao1 e premuto invio, causa il segmentation fault, senza che sia ritornato nessun errore prima. Premetto che su Ubuntu 64 bit, tale codice funziona perfettamente. L'errore compare in ubuntu 32bit
Aiutatemi, l'esame si avvicina