il problema della seriale potrebbe essere dovuto ad aspetti hardware o di interfacciamento (moduli kernel, driver, ecc), per il resto qualunque eseguibile scritto in qualunque linguaggio che è in grado di restituire una risposta http (la striga di inizio "Content-type:text/html\n\n") può fungere da CGI. Per cui se il programma in C può fare ciò azionalo direttamente, basta inserirlo nel path adeguato e dargi i permessi 755. Diverso è il discorso se il programma non è stato fatto per fungere da CGI, allora dovrà essere richiamato da qualcosa che lo sia.