int main (int argc,char *argv[]){ char bookName[128]; /*Tamanho máximo para o título de um livro*/ char opt[10]; char word[256];/*Tamanho máximo permitido para uma palavra*/ int ret = 0; ret = sscanf(argv[1],"-f%s",bookName); if (ret != 1){ printf ("Entrada invalida, programa abortado!\n"); exit(-1); } printf ("Bem vindo, livro inserido : %s\n",bookName); printf ("Inicilizando tabela hashing\n"); STstart(); printf ("Carregando Livro.....\n"); STstartReadBook(bookName); printf ("Livro Carregado.....\n"); printf ("Insira uma opcao e palavra : "); fscanf (stdin,"-%s %s",opt,word); clear_newlines(); while (strcmp(opt,"F") != 0){ if (strcmp(opt,"e") == 0) STseekWord(word,'e'); if (strcmp(opt,"ev") == 0) STseekWord(word,'v'); if (strcmp(opt,"eV") == 0) STseekWord(word,'V'); if (strcmp(opt,"a") == 0) STseekLemma(word, 'a'); if (strcmp(opt,"av") == 0) STseekLemma(word,'v'); if (strcmp(opt,"aV") == 0) STseekLemma(word,'V'); printf ("Insira uma opcao e palavra : "); fscanf (stdin,"-%s %s",opt,word); clear_newlines(); } printf ("Fim de Programa!\n"); return 0; }
void select_menu(){ // menu int menu; char command[1024]; printf("- Select Menu -\n"); printf("1. create note\n"); printf("2. write note\n"); printf("3. read note\n"); printf("4. delete note\n"); printf("5. exit\n"); scanf("%d", &menu); clear_newlines(); switch(menu){ case 1: create_note(); break; case 2: write_note(); break; case 3: read_note(); break; case 4: delete_note(); break;6 case 5: printf("bye\n"); return; case 0x31337: printf("welcome to hacker's secret menu\n"); printf("i'm sure 1byte overflow will be enough for you to pwn this\n"); fgets(command, 1025, stdin); break; default: printf("invalid menu\n"); break; } select_menu(); }
void read_note(){ unsigned int no; printf("note no?\n"); scanf("%d", &no); clear_newlines(); if(no>256){ printf("index out of range\n"); return; } if(mem_arr[no]==NULL){ printf("empty s**t!\n"); return; } printf("%s\n", mem_arr[no]); }
void delete_note(){ unsigned int no; printf("note no?\n"); scanf("%d", &no); clear_newlines(); if(no>256){ printf("index out of range\n"); return; } if(mem_arr[no]==NULL){ printf("already empty s**t!\n"); return; } munmap(mem_arr[no], PAGE_SIZE); mem_arr[no] = NULL; }
void write_note(){ unsigned int no; printf("note no?\n"); scanf("%d", &no); clear_newlines(); if(no>256){ printf("index out of range\n"); return; } if(mem_arr[no]==NULL){ printf("empty s**t!\n"); return; } printf("paste your note (MAX : 4096 byte)\n"); gets(mem_arr[no]); }