Aufgabe 5

Abgabe?

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabe 5
Hat noch wer bei der Abgabe Probleme?
Bei mir sagt des abgabe Prog:

Aber irgendwie trau ich dem letzten satz net… :wink:


Jop, ich hab den gleichen Fehler jetzt auch bekommen.


Das Abgabe-Verzeichnis war nicht schreibar. Der letzte Satz stimmt jedoch zu mindestens
in Hinsicht auf eine erfogreiche Abgabe. Das abgabe-Programm schaltet bei einem Fehler
auf Plan B um und macht ein automatisches “abgabe -force”. Was immer funktionieren
sollte. :slight_smile:

Ihr habt daher erfolgreich abgegeben und den Fehler habe ich behoben.


Hat zwar etz nix mti der Abgabe zu tun aber geht um die Aufgabe 5.
wenn man nur “printdir” eingibt ohne irgendwelche pfadnamen, soll dann das aktuelle Verzeichnis angezeigt werden wie bei ls oder soll dann nichts passieren?


wenn nichts in der aufgabenstellung dazu steht (bin grade zu faul nachzuschauen) ist es nicht verlangt, aber es sollte ja nicht zuviel arbeit sein dann das aktuelle Verzeichnis (“.”) auszugeben :wink:


Nein zu viel Arbeit ist es nicht, nur ich will dafür kein Punktabzug kriegen :wink:

In der Angabe steht oben nur “ähnlich wie mit dem UNIX-Kommando ls(1)”, deswegen bin ich mir nicht sicher.


Ich kann mir nicht vorstellen dass Dir dafuer jemand Punkte abzieht, immerhin ist es auf der anderen Seite ja auch kein erhoehter Korrekturaufwand fuer den Uebungsleiter, ausserdem kannst Du es ja mit dem ähnlich wie ls rechtfertigen :wink:


Ok danke für die schnellen Antworten.
Dann lass ichs drin


Mein Program funktioniert wunderbar, aber nur für aktuellen Verzeichnis.
Wenn ich einen anderen Pfad übergebe, kriege ich eine Fehlermeldung im lstat(…).


lstat braucht den ganzen pfad, nicht nur den namen…
einfach zusammenbasteln aus übergebenem pfad und d_name, am einfachsten mit strncat
peace


Wenn du [m]lstat()[/m] aufrufst, solltest du vor den Namen des Verzeichniseintrags noch den Pfad kleben, den du an das Programm übergeben hast. Sonst sucht [m]lstat()[/m] diesen Eintrag im aktuellen Verzeichnis und findet ihn dort natürlich nicht.

Nachtrag: Da war ich wohl mal wieder zu spät - aber doppelt genäht hält besser. :slight_smile:


Danke! :slight_smile: Jetzt funktioniert. Die Lösung ist “Pfad” + “/” + “d_name”.


oder einfach chdir 'en


dann bist ja nachm printdir in einem anderen verzeichnis … halte die andere Loesung fuer eleganter.

PS: Man muss sich uebrigens da keine Gedanken machen, ob das Verzeichnis schon mit ‘/’ abgeschlossen ist, da mehrere ‘/’ Zeichen vom System wie eins gehandhabt werden.


na ja, du muss sowieso zurück springen, wenn du mehrere Verzeichnisse durchsuchen willst :slight_smile: …die Shell bleicht doch sowieso in seinem alten Verzeichnis, unabhängig von ausgeführten Programmen, oder täusche ich mich?


Also das mit chdir klappt doch wunderbar. Und über Eleganz lässt sich ja bekanntlich streiten :wink:
Man hat in seiner Hauptschleife einen einzigen chdir Aufruf und muss danach keine Strings mehr zambasteln.
[Okay, man hat ne zweite Zeile und damit eine if-Abfrage zusätzlich, damit auch Sachen wie “printdir /proj ./” klappen, so dass nicht zweimal hintereinander /proj ausgegeben wird]


sollen auch die rechte für die ordner auf deren inhalt wir ausgeben angezeigt werden??

bei mir schaut das bis jetzt so aus:

udgard@deathstar:~/SoS/aufgabe5/src$ ./printdir

./
        -rwxr-xr-x 1 10834       printdir
        -rw-r--r-- 1 5816        printdir.c
        -rw-r--r-- 1 5817        printdir.c~
        drwsrwSrw- 2 48          tt
        -rwsrwsrwt 1 0           test.c
        -rw-r--r-- 1 206         Makefile
        drwxr-xr-x 2 80          RCS

sollte so passen, ls macht das ja auch nich…


hey…

ich glaub ich steh grad auf’m schlauch. vielleicht kann mir ja jemand hier nen tipp geben: Die sache mit dem q-sort: wenn ich mir zuerst die zeiten ausgeben lasse, die dann sortiere, weiss mein Programm ja gar nicht mehr, welche Zeit zu welchem Verzeichnis-Eintrag gehört hat. Und wenn ich ein Feld mit den Verzeichniseinträgen an qsort übergebe, kann ich ja nicht mehr ordentlich die Zeiten rauslesen…

Bitte um kleine Anregung :wink: