Ammetto che non conosco l'argomento in dettaglio, ma se vuoi fare grafica sotto linux ti conviene usare necessariamente le xlib (le librerie di X) oppure le ncurses se vuoi fare grafica ascii.

Per skyblaze :
si' in c puoi tranquillamente creare finestre e amenità varie, ma ti devi appoggiare a librerie esterne che non sono contenute nell'ansi c.
Puoi usare le librerie xlib per il disegno di finestre, primitive varie (linee, punti,cerchi). Se vuoi fare interfaccie grafiche puoi usare le gtk (grafica stile gnome), le qt (grafica stile kde) o le motif.

Gtk,qt e compagnia bella ti risparmiano di dover disegnare i bottoni e gli altri elementi di una finestra a suon di linee e punti, ma contengono funzioni che astraggono questo lavoro (ad esempio, basta un qualcosa tipo addButton() per aggiungere un pulsante a una finestra).

Libri su questi argomenti se ne trovano, ma un po' a fatica, specialmente se non vivi in una citta' dotata di una fornita libreria inglese.
La cosa migliore penso rimanga la documentazione ufficiale fornita con le librerie stesse.