main.cpp

Impementación Mini File System (MiniFS)
 main.cpp
































#include <stdio.h> // scanf, printf

#include <stdlib.h>//Libreria que contiene la funcion system

#include <string.h>//strcmp

#include "miniFS.h"


int main(int argc, char* argv[])

{


char comando[128];

/* comando es un string que en principio contiene todo lo tipeado en la consola hasta apretar enter;

luego en "evalua" le quitamos el primer token si coincide con alguna "accion",

ese nuevo comando (más corto) ahora sólo contiene los argumentos que le pasamos a la función correspondiente a esa acción;

dentro de esas funciones eventualmente (attrib, it) seguimos dividiendo más en tokens.

Comando se crea en el Stack (la pila), y no en el Heap, por lo tanto no necesita ser liberada, por que

la libera el sistema automaticamente */


system("cls");

ayuda(comando); //no le puedo mandar (""), porque si no da error de conversion char constante


while (1){ //loop infinito

fflush(stdin);

*comando = 0; //borrarlo porque el bobo scanf no lo hace cuando sólo aprieto enter

scanf("%127[^\n]s", comando);//continua hasta el enter http://stackoverflow.com/questions/1555731/how-to-take-whitespace-in-input-in-c

/* algunas acciones necesitan argumentos siempre, en esos casos incluyo el espacio separador en el string acción;

otras no admiten argumentos, verifico que no los tengan dentro de su procedimiento específico

otros como dir y cd los admiten pero no requieren; lo manejo dentro de su procedimiento específico

*/

    if (strcmp(comando,"fin")==0) {

    destruirsistema();

    return 0;

    }

    if (strcmp(comando,"destruirsistema")==0) {

    destruirsistema();

    continue;

    }

    if (evalua(comando,"crearsistema", crearsistema)) continue;

    if (evalua(comando,"mkdir ", mkdir)) continue;

    if (evalua(comando,"rmdir ", rmdir)) continue;

    if (evalua(comando,"cd", cd)) continue;

    if (evalua(comando,"dir", dir)) continue;

    if (evalua(comando,"createfile ", _createfile)) continue;

    if (evalua(comando,"delete ", _delete)) continue;

    if (evalua(comando,"attrib ", attrib)) continue;

    if (evalua(comando,"it ", it)) continue;

    if (evalua(comando,"type ", type)) continue;

    if (evalua(comando,"ayuda", ayuda)) continue;

    if (evalua(comando,"prueba", prueba)) continue;

    if (evalua(comando,"letra", letra)) continue;

    

    prompt("no se reconoce el comando");

    }

}































ċ
main.cpp
(2k)
Andrés Franchi,
23 nov. 2015 5:10
ċ
miniFS.cpp
(29k)
Andrés Franchi,
23 nov. 2015 5:10
ċ
miniFS.h
(2k)
Andrés Franchi,
23 nov. 2015 5:10
Comments