Hola, buenas, estaba haciendo un pequeño programa en el que una parte consiste en crear un fichero "prueba.bin", proyectarlo en memoria y luego inicializarlo a cero para luego ya meterle los valores que vamos a usar. El problema es que para inicializarlo, no se como meter los 0 en formato binario, lo habia hecho con
sprintf(buffer, "0");
write(archivo, buffer, strlen(buffer));
pero despues me di cuenta de que asi estaba mal, ya que si no me equivoco se guarda en buffer como string.
aqui os dejo el resto del codigo tambien, muchas gracias
int archivo, tam_fich=40;
char * buffer2;
archivo=open("prueba.bin", O_RDWR | O_CREAT, 0777 );
if(archivo == -1){
perror("Abrir fichero");
exit(1);
}
buffer2=mmap (0, tam_fich , PROT_READ | PROT_WRITE , MAP_SHARED, archivo , 0);
if(buffer2==MAP_FAILED){
perror("MEMORIA");
exit(1);
}
/*aqui iria el codigo para guardar 10 ceros en formato binario*/
prueba con memset.