tengo este ejercicio.
realizar un programa que cree un archivo binario con bytes aleatorios, garantizando que en alguna parte del programa se encuentre la secuencia de 7 bytes a8 5c 60 70 70 af ef.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 8
int main(){
FILE * FP, *FPAUX;
int i, ENCONTRADO;
int byte;
srand(time(NULL));
if ( (FP = fopen ("EJ","wb")) == NULL ) {
printf("\n\n ERROR APERTURA DE ARCHIVO \n\n") ;
exit(1);
}
printf("\n\t\t INGRESE BYTE A ALMACENAR \n\n");
for ( i = 0 ; i < N ; i++ ) {
byte = rand() % 65536;
printf("\n\n\t %x \n", byte);
fwrite ( &byte , sizeof(byte) , 1 , FP );
}
fclose(FP);
if ( (FP = fopen ("EJ","rb")) == NULL ) {
printf("\n\n ERROR APERTURA DE ARCHIVO LECTURA \n\n") ;
exit(1);
};
if ( (FPAUX = fopen ("EJAUX","wb")) == NULL ) {
printf("\n\n ERROR APERTURA DE ARCHIVO ESCRITURA \n\n") ;
exit(1);
};
fread ( &byte , sizeof(byte) , 1 , FP );
while ( ! feof(FP)) {
if ( byte == 43100)
fseek(FP, sizeof(byte) , SEEK_SET);
if (byte == 26992)
fseek(FP, sizeof(byte), SEEK_CUR);
if(byte == 28847)
fseek(FP, sizeof(byte), SEEK_CUR);
if(byte == 239)
ENCONTRADO = 1;
fwrite ( &byte, sizeof(byte) , 1 , FPAUX );
fread ( &byte , sizeof(byte) , 1 , FP );
}
fclose(FP);
fclose(FPAUX);
/* ELIMINAMOS BD Y RENOMBRAMOS BDAUX COMO BD */
remove("EJ") ;
rename( "EJAUX" , "EJ" );
return 0 ;
}
ese es lo que hice hasta ahora pero el if no me funciona, no se si estoy usando mal el fseek
MOD: Utiliza etiquetas de Código GeSHi para el código