Ir para conteúdo
Fórum Script Brasil

Ankani

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Ankani postou

  1. Ankani

    Bubblesort

    Ola boa tarde, Estou a fazer um trabalho de comandos em linux, e tenho uma parte no comando ls para imprimir os ficheiros por ordem de nome e não estou conseguindo fazer o bubblesorte.Neste proxima codigo tenho as variaveis base. #include <stdio.h>#include <stdlib.h> #include <string.h> #include <errno.h> #include <dirent.h> #include <time.h> #include <sys/stat.h> #include <sys/types.h> struct linha { int numero_linha; char conteudo[350]; struct linha *linha_seg; struct linha *linha_ant; }; typedef struct linha * LINHA; typedef struct linha ** PLINHA; // Apontador para Apontador para Linhar, para ser usado na funcao Sort para o sort.c LINHA primeira_linha, ultima_linha; char comandos[30][10]; char ficheiros[25][350]; int total_comandos; int total_ficheiros; } Neste proximo codigo tenho a funcao ls void ls(char nomedirectorio[80]) { DIR *dp; struct dirent *dirp; FILE *file; char ficheiro[100]; int contador_pagina = 1; int contador_print = 0; int diferenca = 0; int numero_espacos; if ((dp = opendir(nomedirectorio)) == NULL ) { fprintf(stderr, "Erro1: Directorio não Existente!\n"); exit(1); } while ((dirp = readdir(dp)) != NULL ) { if(existe_arg("l")) { //Faz a listagem longa com indicacao nome, dimensao e data do ficheiro file = fopen(dirp -> d_name, "r"); strcpy(ficheiro, dirp -> d_name); printf("Nome: %s\t Dimensao: %d", ficheiro, tamanho(file)); date(ficheiro); fclose(file); } if(existe_arg("p")) { //Faz pausa a pagina a pagina if((contador_pagina % 30) == 0) { printf("\n\n\n\n Prima Enter Para Ver o Resto do Ficheiro\n"); getchar(); } printf("%s\n", dirp -> d_name); contador_pagina++; } if(existe_arg("c")) { //Lista por colunas os ficheiros contidos na directoria if((contador_print % 3) == 0) { printf("\n"); } diferenca = 50 - strlen(dirp -> d_name); printf("%s", dirp -> d_name); contador_print++; for(numero_espacos = 0; numero_espacos < diferenca; numero_espacos++) { printf(" "); } } if (exist_arg("on")) <--- BUBBLESORT AQUI ON= ORDER NAME. if(!existe_arg("l") && !existe_arg("on") && !existe_arg("od") && !existe_arg("os") && !existe_arg("p") && !existe_arg("c")) { printf("%s\n", dirp -> d_name); } } if(existe_arg("c")) { printf("\n"); } closedir(dp); } Sera que da para ajudar? Obrigado
×
×
  • Criar Novo...