Ok, te entiendo, la cosa es que si sé más o menos C, osea conozco todo lo que es las funciones, variables, tipos de datos, punteros (a los que no les veo mucha utilidad :S), bucles, condicionales, etc...
Ahora, ¿qué me recomendarías que aprenda, o refuerze antes de comenzar?
Que refuerces.
Si los punteros te parecen inútiles, entonces es que o bien no sabes utilizarlos, o bien no sabes para que sirven, y los punteros es como la principal característica que hace de C un lenguaje importante y muy utilizado. Gracias a los punteros se usa C tanto como se usa.
La mayoría de librerias externas de C devuelven punteros a estructuras y cosas por el estilo, así que si no sabes utilizar esta clase de información poco vas a hacer.
Como consejo, hazme caso, sigue estudiando C, y haciendo programas simples asegurándote de que todo funciona como debe.
Recuerda que un programa no solo debe funcionar en tiempo de ejecución, sino que debe ser "coherente" si miras la memoria que utiliza, no debe tener memory leaks, debe ser determinista... en fin... varias cosas que mucha gente se salta cuando comienza a programar. Mucha gente solo se conforma con que funcione, es decir, que de el resultado esperado, pero eso puede tener muchos errores internamente.
Yo me arrepiento de no haber estudiando tanto la base de C.
Avancé como pude, intentando entender lo que podía. Yo pensaba que en realidad lo dominaba y que lo entendía, pero cuando te das cuenta de lo que has estado haciendo, eso no está tan bien como tu pensabas, y como resultado ahora tengo un código en C++ con mas de 3000 lineas donde buscar memory leaks que hace que el programa consuma mucha RAM, sentencias incorrectas, algunas caídas del cliente y demás, aunque por suerte ya lo voy reparando poco a poco.
Hazme caso, aprende bien, y cuando manejes eso vete a por la librería de manejo de ficheros.
Saludos!