fai una prova anche così
codice:
if (pid == -1) {
/* La chiamata fork() e' fallita */
fprintf( stderr, "%s: La fork ha fallito\n", strerror(errno));
exit ( EXIT_FAILURE );
} else if (pid == 0) {
/* Questo e' il processo figlio */
static char *argv[2] ;
static arg0[] = "mio_client";
static unsigned long address = il_mio_indirizzo;
argv[0] = arg0;
argv[1] = ( char * ) &address;
argv[2] = NULL;
execv( "/dove_si_trova/mio_client", argv);
/*
* Se il controllo e' giunto qui allora si e' verificato
* un errore nella chiamata execv().
*/
fprintf( stderr, "%s: execv()\n", strerror(errno) );
} else {
/* Questo e' il processo padre */
}
sul client dereferenzi
unsigned long mio_indirizzo = * ( ( unsigned long * ) argv[1] ) ;