You actually everything that you need, the sysace_fread (i have not looked into its documentation) should allow you to build a fseek function that reads from the beginning or the current position in the file. Exactly the same is true for the getc; just write a function that reads 1 character and returns it. fprintf could prove a little harder if you want to implement the variable parameters feature yourself but you can use the sprintf function to write everything to your string and you can use fprintf afterwards. However be aware that the standard printf function takes up a lot of code size. There is a xil_printf function but this does not support every feature of the normal printf function.