does C has anything like python pickle for object serialisation?
The C library functions fread(3) and fwrite(3) will read and write 'elements of data', but that's pretty fanciful way of saying "the C library will do some multiplication and pread(2) or pwrite(2) calls behind the scenes to fill your array".
You can use them on structs, but it is probably not a good idea:

holes in the structs get written and read
you're baking in the endianness of your integers

While you can make your own format for writing objects, you might want to see if your application could use SQLite3 for on-disk storage of objects. It's well-debugged, and if your application fits its abilities well, it might be just the ticket. (And a lot easier than writing all your own formatting code.)
I'm wondering if C has anything similar to the python pickle module that can dump some structured data on disk and then load it back later. 
I know that I can write my structure byte by byte to a file on disk and then read it back later, but with this approach there's still quite some work to do. For example, if I have a single link list structure, I can traverse the list from head to tail and write each node's data on disk. When I read the list back from the on-disk file, I have to reconstruct all links
between each pair of nodes.
Please advise if there's an easier way.
Thanks heaps!