No me dejan utilizar parseo para obtener los datos, tengo que usar alguna funcion u otra cosa..
Como te digo, para el espacio en disco, tienes
statvfs. Que yo sepa no hay ninguna llamada al sistema que te devuelva la memoria libre en todo el sistema, así que tendrás que usar otro mecanismo (como mirar en /proc/meminfo, o llamar a utilidades como
free o
vmstat a través de
system() -que al fin y al cabo lo que hacen estas utilidades es mirar en /proc/meminfo-. Y no veo por qué no puedes mirar en /proc/meminfo puesto que para eso está

También existen formas más cutres como intentar reservar memoria cada vez más grande hasta que el sistema devuelva error (en un bucle). Esto es una solución muchísimo peor.