在C中从内存中写入文件

Writing a file from memory in C

我一直在尝试用 C 从内存中写一个文件,更具体地说是一个可执行文件。每次我尝试使用 fputs 时,它都会在一段时间后检测到内存中的“00”并停止写入。但是它仍然需要写入文件的其余部分。在我尝试写入的文件中,到处都是“00”用于填充。我在下面有一些代码供参考:

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

有什么方法可以在不 fputs 将其作为 EOF 的情况下在内存中保留 '00' 吗?
谢谢!

你应该用'fwrite'代替fpus