Il passaggio di parametri tramite variabili di ambiente avviene ogniqualvolta il server riceva dal client una chiamata GET con i parametri posti in coda al nome del programma e in coppie nome=valore (primo riquadro della figura). In questo caso la trasmissione dei parametri al gateway program avviene tramite l'assegnazione ad una opportuna variabile d'ambiente con il valore corrispondente all'intera stringa delle coppie nome=valore (secondo riquadro della figura). La variabile d'ambiente che il CGI usa per questo scopo è QUERY_STRING. Successivamente il server lancia il gateway program (terzo riquadro della figura), che estrae i valori desiderati dalla stessa variabile di ambiente. Se il gateway program è scritto in linguaggio C, nel suo codice compariranno delle istruzioni analoghe a quelle rappresentate nel quarto riquadro della figura: ci sarà una variabile allo scopo di ospitare la stringa dei parametri da recuperare (la variabile "parametri" appunto). A questa variabile verrà assegnato uno spazio opportuno di memoria per ospitare tutta la stringa di parametri (è lo scopo della seconda linea del programma: la funzione parametri = (char*)calloc(256, sizeof(char)) riserva 256 caselle contigue di memoria, ognuna della dimensione sufficiente a contenere un carattere, ed assegna alla variabile parametri il puntatore alla prima casella). Infine la funzione di libreria strcpy() copia nella zona di memoria puntata da parametri, il risultato della funzione getenv("QUERY_STRING"), ovvero il valore della variabile di ambiente che contiene i parametri cercati. Nel seguito del programma sarà necessario individuare all'interno di questa stringa le coppie nome=valore, ed estrarre i valori opportuni.