int main(int argc, char **argv) { bmount(argv[1]); char text [2048]= "Empieza con un prólogo en el que se burla de la erudición pedantesca y con unos poemas cómicos, a manera de preliminares, compuestos en alabanza de la obra por el propio autor, quien lo justifica diciendo que no encontró a nadie que quisiera alabar una obra tan extravagante como esta, como sabemos por una carta de Lope de Vega. En efecto, se trata, como dice el cura, de una escritura desatada libre de normativas que mezcla lo lírico, épico, trágico, cómico y donde se entremeten en el desarrollo historias de varios géneros, como por ejemplo: Grisóstomo y la pastora Marcela, la novela de El curioso impertinente, la historia del cautivo, el discurso sobre las armas y las letras, el de la Edad de Oro, la primera salida de don Quijote solo y la segunda con su inseparable escudero Sancho Panza (la segunda parte narra la tercera y postrera salida La novela comienza describiéndonos a un tal Alonso Quijano, hidalgo pobre, que enloquece leyendo libros de caballerías y se cree un caballero medieval. Decide armarse como tal en una venta, que él ve como castillo. Le suceden toda suerte de cómicas aventuras en las que el personaje principal, impulsado en el fondo por la bondad y el idealismo, busca «desfacer agravios» y ayudar a los desfavorecidos y desventurados. Profesa un amor platónico a una tal Dulcinea del Toboso; que es, en realidad, una moza labradora «de muy buen parecer»: Aldonza Lorenzo. El cura y el barbero del lugar someten la biblioteca de don Quijote a un expurgo, y queman parte de los libros que le han hecho tanto mal.Don Quijote lucha contra unos gigantes, que no son otra cosa que molinos de viento"; /* int ninodo = reservar_inodo('f', '6'); printf("\t- Reserva primer inodo: %d\n", ninodo); mi_write_f(ninodo, "Esto es la prueba numero 1\0", 5120, 27); */ int ninodo = reservar_inodo('f', '6'); printf("\t- Reserva inodo: %d\n", ninodo); mi_write_f(ninodo, text, 409604096, strlen(text)); //ninodo = reservar_inodo('f', '6'); // printf("\t- Reserva segundo inodo: %d\n", ninodo); // mi_write_f(ninodo, "Esto es la segunda prueba\0", 256000, 26); // ninodo = reservar_inodo('f', '6'); // printf("\t- Reserva tercer inodo: %d\n", ninodo); // mi_write_f(ninodo, "Esto es la prueba numero 3\0", 30721024, 27); // ninodo = reservar_inodo('f', '6'); // printf("\t- Reserva cuarto inodo: %d\n", ninodo); // mi_write_f(ninodo, "Esto es la cuarta prueba\0", 71680000, 25); bumount(); return ninodo; }
int main(int argc, char **argv){ int descriptor,bytesEscribir,sz; unsigned int offset,ninodo,bytesWritten, bytesEscritos, longitudFichero; FILE *fptr; if(argc<4){ printf("Syntax error, not enough argumentes, file mi_escribir.c\n" "Correct Order:\n" "Argument 1: File System Name\n" "Argument 2: offset\n" "Argument 3: input text to write in file\n"); return -1; } descriptor = bmount(argv[1]); bytesEscritos = 0; ninodo=reservar_inodo('f',6); //ninodo = 1; printf("#El inodo creado es: %d\n",ninodo); offset = atoi(argv[2]); if ((fptr=fopen(argv[3],"r"))==NULL){ printf("Error! opening file"); exit(1); /* Program exits if file pointer returns NULL. */ } fseek(fptr, 0L, SEEK_END); sz = ftell(fptr); fseek(fptr, 0L, SEEK_SET); unsigned char input[sz]; fscanf(fptr,"%[^\n]",input); fclose(fptr); //We write all the file, in one take, to the FS bytesWritten=mi_write_f(ninodo,input,offset,sz); if(bytesWritten<0){ printf("Error al escribir en el fichero"); } if(bumount(descriptor)<0) exit(1); return 0; }
int main(int argc, char **argv){ if(argc<3){ printf("\nescribir: Error debe escribir: $ ./escribir <nombre_fichero> <offset> <inodo(opcinal)>\n"); printf("*Si no indica el inodo el sistema se encargará de reservar un inodo nuevo.\n"); return -1; } struct INODO inodo; int ninodo; char ruta[128]; long nbytes; long offset = atoi(argv[2]); printf("\nescribir: Escribe la ruta del fichero: "); scanf("%s",ruta); FILE *fichero = fopen(ruta,"r"); fseek(fichero, 0, SEEK_END); // Colocar el cursor al final del fichero nbytes = ftell(fichero); // Tamaño en bytes printf("\nescribir: El tamaño del fichero es: %ld\n",nbytes); char entrada[nbytes]; fseek(fichero,0,0); fscanf(fichero,"%s",entrada); fclose(fichero); //Montamos el dispositivo. printf("\nescribir: Montando el dispositivo...\n"); bmount(argv[1]);//nombre_fichero printf("\nescribir: El dispositivo se ha montado con éxito.\n"); //Si el inodo se pasa como argumento if(argc == 4){ ninodo = atoi(argv[3]); }else{ //Reservamos el inodo. ninodo = reservar_inodo('f',6); } inodo = leer_inodo(ninodo); //IMPRIMIR INODO printf("\nNº INODO %i:\n",ninodo); printf("Tipo: %c\n",inodo.tipo); printf("Permisos: %i\n",inodo.permisos); printf("Nº enlaces: %i\n",inodo.nlinks); printf("Bytes lógicos: %i\n",inodo.tamEnBytesLog); printf("Bloques ocupados: %i\n",inodo.numBloquesOcupados); //ESCRITURA if(mi_write_f(ninodo,entrada,offset,nbytes)!=nbytes){ printf("\nescribir: ERROR, no se ha escrito en el fichero correctamente.\n"); return -1; } //LECTURA printf("\nescribir:Se ha leído lo siguiente con el offset %ld:\n",offset); if(mi_read_f(ninodo,entrada,offset,nbytes)!=nbytes){ printf("\nescribir: ERROR, no se ha leído en el fichero correctamente.\n"); return -1; } write(1,entrada,nbytes); printf("\n\nInodo Actualizado:\n"); inodo = leer_inodo(ninodo); //IMPRIMIR INODO printf("\nNº INODO %i:\n",ninodo); printf("Tipo: %c\n",inodo.tipo); printf("Permisos: %i\n",inodo.permisos); printf("Nº enlaces: %i\n",inodo.nlinks); printf("Bytes lógicos: %i\n",inodo.tamEnBytesLog); printf("Bloques ocupados: %i\n",inodo.numBloquesOcupados); //Desmontamos el dispositivo. printf("\nescribir: Desmontando el dispositivo...\n\n"); bumount(); printf("\nescribir: Dispositivo desmontado con éxito.\n"); return 0; }