Buenas, este es mi primer post, estuve mirando a ver si encontraba algo acerca de esto pero no encontre nada (quizas no mire lo suficiente
jaj )
bueno la cosa es que necesito escribir el caracter NULL en un archivo, en realidad necesito escribir los bits 0x00.
por ejemplo:
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char** argv){
char* a=(char*)malloc(sizeof(char)*2);
//a="ab";
//a[0]='a';
a[0]=0x00;
a[1]='b';
FILE* fd=NULL;
fd=fopen("archivo.bla","wb");
fprintf(fd,a);
fclose(fd);
return 0;
}
me gustaría tener a la salida un archivo que pesara 2bytes, sin embargo a la salida me encuentro con que no escribió nada en el archivo
el problema me surge porq estoy haciendo un compresor de archivo, la idea que tengo un buffer de n bytes levantados de un archivo comprimido
tengo otro buffer donde voy guardando los bytes del archivo original (obtenidos al descomprimir los códigos de compresión de los bits contenidos en los bytes levantados del archivo)
por ejemplo: puedo levantar del archivo comprimido un byte= 10010111 y esto corresponderse a los bytes de los caracteres : az5 comprimidos, entonces en mi buffer de salida escribiría los caracteres az5 (en realidad sus bytes)
lo que me pasa es que cuando levanto una serie de bytes, que al descomprimirlo se corresponden con el byte=0x00, al poner esto en mi buffer de salida se pudre todo.
por el momento anda bien para archivos de texto el compresor, pero si paso un mp3, o una película nada me asegura que no haya en ese archivo 1 byte con valor 0 y eso al descomprimir me muere en realidad no lo escribe y bueno, obtengo cualquier cosa en la salida
No se si se entendió lo que quise decir, es complicado se claro con esto T_T jaja, espero me puedan dar una mano, y gracias desde ya ^^!