Devo realizzare un programmino che ne richiami un altro e scriva l'output di quest'ultimo su di una socket (praticamente la cosa che fa Apache con i CGI)...
Per ora faccio così:
- faccio partire una pipe (si dice "faccio partire una pipe"? :master: )
- Forko il programma
- il figlio chiude un lato della pipe e connette l'altro al suo stdout
- il figlio esegue quindi un programma (il cui stdout viene inviato alla pipe)

- il padre *dovrebbe* poter leggere la pipe, guardarne la dimensione ed inoltrarla ad una socket, ma come faccio tutto cio'?


Per ora ho fatto questo:
codice:
int pdes[2];					// [0] = lettura, [1] = scrittura
pid_t pid;
			
if ( pipe ( pdes ) ) {				// apro la pipe
	printf ( "Errore: impossibile creare la pipe per la SSP.\n" );
	exit ( 1 );
}
			
if ( ( pid = fork() ) == -1 ) {			// forko il programma
	printf ( "Errore: impossibile creare il figlio per la SSP.\n" );
	exit ( 1 );
}

if ( pid == 0 ) {				// figlio: esegue il programma
	close ( pdes [0] );			// chiudo il capo di output verso il programma
	dup2 ( pdes [1], STDOUT_FILENO );	// associo il capo di input allo stdout per ascoltarlo
	execve ( prgName, NULL, NULL );	// eseguo il programma
}