Search code examples
cmemoryzero

Writing a file from memory in C


I have been trying to write a file from memory in C, more specifically an executable file. Every time I try to use fputs it detects a '00' in memory after a bit and stops writing. But there is still the rest of the file that it has to write. In the file that I am trying to write there are '00's all over the place for padding. I have some code below for reference:

char *buffer;
buffer = malloc(size);
// ...
FILE *file;
file = fopen("somename","w");
fputs(buffer,file);
fclose(file);

Is there any way I would be able to have '00's in memory without fputs taking it as an EOF?
Thanks!


Solution

  • you should use 'fwrite' take the place of fpus