if ((finfo = malloc(sizeof(struct stat))) == NULL)
Try this:
if ((finfo = (void *)malloc(sizeof(struct stat))) == NULL)
The warning, in this case, is harmless.
As for timestamps on /proc/ "files", you have to keep in mind (or you have to know, first) that there are NO files under /proc/.
What you see there that look like files, are not really files. When you try and read from them, what happens is that the kernel generates the data on-the-fly, each time you read from them.
Otherwise, the data does not exist, and therefore cannot have a timestamp.
The data in those "files" is generated on-demand, whenever they are read.
Got it?