Pokaż wyniki 1 do 9 z 9

Temat: C i katalogi

  1. #1
    Zarejestrowany
    Oct 2009
    Postów
    5

    Domyślnie C i katalogi

    Witam, mam taki problem
    probuje napisac program, ktory wylistuje mi podkatalogi z katalogu w ktorym go uruchomie, nie korzystajac z funkcji systemowych takich jak ls czy dir sam czysty jezyk c

    przykladowy wynik dzialania
    \/

    [linux@Desktop] # ./lister
    Muzyka <dir>
    Zdjecia <dir>
    Pliki <dir>
    itp

    i nieumiem se dac rady czy jest to w ogole mozliwe? bo zaczynam watpic;[ (os linux kompilator gcc jezyk c)

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    pisac w jezyku porgramowania takim jak C i odpalac zewnetrzen polecenia aby wyswietlic sobie liste plikow to sorry, porazka - blad poczatkujacego programisty.

    spoko, ja to samo robilem w perlu kiedys jak sie uczylem..

    Musisz to miec w C? Prosciej w bashu bedzie
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3
    Zarejestrowany
    Oct 2009
    Postów
    5

    Domyślnie

    musze w c a po 2 nie poczatkujacego ale tez nie super codera ucze sie c juz pare latek a z takim problemem nie moge poprostu dac se rady wiec napisalem moze ktos wie
    a w bashu moge napisac to sobie sam w pare minut

  4. #4

    Domyślnie

    Czyli rozumiem, że nie można użyć żadnej funkcji z systemowego API ? jeżeli tak, to bez sensu. Programiści windows napisali użytkowe API, abyś mógł z nich korzystać jako programista
    Ostatnio edytowane przez Prick : 10-24-2009 - 13:38

  5. #5
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Mozna napisac w C, to nie jest wielki problem... ja nie pisze akurat w C tylko w Perlu glownie, tam jest opendir(), readdir(), closedir() o ile pamietam i sadze ze podobne beda w C

    To co pisalem o poczatkujacym programiscie - chodzi o to ze nie ma sensu uzywac np system('ls -1 > .ls-1') a pozniej czytac pliku i kasowac go na koniec bo cale 'ls' powinno sie napisac od razu w kodzie. Jedyne uzasadnienie dla mnie aby wywolac jakis inny program, to sytuacja gdzie robi on cos bardziej zaawansowanego - powiedzmy niech bedzie to iptables. Mi nie chcialoby sie pisac od podszewki manipulacji netfiltrem.
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  6. #6

    Domyślnie

    sys_getdents
    getdents()

  7. #7

    Domyślnie

    tu masz rozwiązanie w C, ale dla win32:
    Kod:
     
    #include <stdio.h>
    #include <windows.h>
    
    int main( void ) {
        
        system( "dir C:\\" );
        system("pause");
        
    }

  8. #8
    Zarejestrowany
    Jul 2007
    Skąd
    C:\Perl\bin
    Postów
    1,578

    Domyślnie

    funkcje systemowe nie maja byc uzyte.
    War, war never changes.

  9. #9

    Domyślnie

    Kod:
    #include <stddef.h>
    #include <stdio.h>
    #include <sys/types.h>
    #include <dirent.h>
         
    int main (void)
    {
      DIR *dp;
      struct dirent *ep;
         
      dp = opendir ("./");  //biezacy katalog
      if (dp != NULL) 
      {
        while (ep = readdir (dp)) puts (ep->d_name);
        (void) closedir (dp);
      }
      else
      {
        perror ("Nie mozna otworzyc katalogu: ");
      }
    
      return 0;
    }
    "a imię jego będzie czterdzieści i cztery"
    A. Mickiewicz Dziady cz. III

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj