Lo primero que necesitas para hacer un webserver en C es saber como funcionan los sockets: busca información.
Una vez sepas de que va esto de los sockets tienes que saber que un servidor web no es más que un programa que esta escuchando en el puerto 80 y atendiendo peticiones.
Eso implica que deberias saber como va el protocolo http, pues cualquiera que conecte a ti va a realizarte las peticiones con este formato: busca información.
Si no sabes de que va eso de varios hilos de ejecución (threads, fork) deberias mirarlo. A no ser que quieras que tu servidor solo pueda atender una petición.
Siento no haber contestado con código pero la pregunta era demasiado general.
Espero que sirva de ayuda.