el archivo destino, no tenia permiso de escritura, =/, ya copia ahora solo falta que copie la paleta y que de ahi siga copiando el resto de la imagen, por que el ciclo for no lo hacia correctamente,, alguna idea?

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#include<stdio.h>
#include<fcntl.h>
#include<math.h>
main(int argc,char *argv[])
{
int da,y,da2,data,x,biBitCount;
//double biBitCount;
char z[2],buffer[256];
unsigned char r,g,b,Q,gris;
unsigned char paleta[4];
da2=open(argv[2], O_RDONLY|O_TRUNC|O_CREAT,0666);
da=open(argv[1],O_RDONLY);
y=read(da,&z,2);
printf("el tipo de archivo es: %s\n",z);
write(da2,&z,y);printf("y: %i\n",y);
y=read(da,&data,4); printf("El tamanio del archivo es: %i\n",data);
write(da2,&data,y);/*data=0*/;printf("y: %i\n",y);
y=read(da,&data,2);printf("EL bfReserved1 es: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,2);printf("EL bfReserved2 es: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,4);printf("El bfOffbits: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,4);printf("EL bfSize es: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,4);printf("EL ancho de la imagen es: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,4);printf("EL largo de la imagen es: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,2);printf("EL Numero de planos es: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,2);printf("EL biBitCount numero de bytes por pixel es: %i\n",data);
biBitCount=data;
write(da2,&data,y);//data=0;
y=read(da,&data,4);printf("EL tipo de compresion es: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,4);printf("la resolucion horizontal en pixeles por metro: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,4);printf("La resolucion vertical en pixeles por metro: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,4);printf("El tamaño de la imagen bytes: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,4);printf("EL Numero de colores indexado es: %i\n",data);
write(da2,&data,y);//data=0;
y=read(da,&data,4);printf("EL Numero de colores importantes: %i\n",data);
write(da2,&data,y);//data=0;
if (biBitCount==1)
{
printf(" r\t g\t b\t Q\n");
for(x=0;x<pow(2,biBitCount);x++)
{
read(da,paleta,4);
printf("%i\t %i\t %i\t %i\n",paleta[0],paleta[1],paleta[2],paleta[3]);
/*read (da,&r,1);
read(da,&g,1);
read(da,&b,1);
read(da,&Q,1);
printf("%c,%c,%c,%c",r,g,b,Q);*/
if (x==0)
{paleta[0]=255;write (da2,&paleta,1);
paleta[1]=0;write (da2,&paleta,1);
paleta[2]=0;write (da2,&paleta,1);
paleta[3]=0;write (da2,&paleta,1);}
if(x==1)
{paleta[0]=0;write(da2,&paleta,1);
paleta[1]=0;write(da2,&paleta,1);
paleta[2]=255;write(da2,&paleta,1);
paleta[3]=0;write(da2,&paleta,1);}
}
}
/*while((y=read(da,buffer,sizeof(buffer)))!=0)
{
write(da2,buffer,y);
}*/
for (x=0;x<3718;x++)
{
y=read(da,&data,1);
write(da2,&data,y);
}
/* if (biBitCount==4&biBitCount==8)
{
gris=(0.299)*r+(0.587)g+(0.114)*b);
}*/
}