Aufgabe 3 - Manpages lesen

UHUHHUHUUHU

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 3 - Manpages lesen
die aufgabe 3 is ja zum großteil auf manpage lesen beschränkt.
aber könnte hier schnell einer erklären wie die POSIX (zugriffsrechte) Flags kontrolliert werden können?
am besten auch gleich mit bitmuster-erklärung oder halt so das man auch andere flags die später kommen mögen versteht. danke im voraus.

hochachtungsvoll, eem

<
UU


bitweise UND-Verknüpfung mit &, kanns dir nicht genau sagen aber ich denke mal dass das etwa so läuft…

Datei hat folgende Rechte : rwxr–r-- also 111100100
wenn ich jetzt überprüfe ob der USER Schreibrecht hat wird mit 010000000 verglichen, das gibt bei bitweisem UND ne 1.


speziell für die Rechte sollt ihr laut Aufgabenstellung die Macros verwenden!

S_ISREG(m) is it a regular file?

          S_ISDIR(m)  directory?

          S_ISCHR(m)  character device?

          S_ISBLK(m)  block device?

          S_ISFIFO(m) fifo?

          S_ISLNK(m)  symbolic link? (Not in POSIX.1-1996.)

          S_ISSOCK(m) socket? (Not in POSIX.1-1996.)

wobei ihr S_ISSOCK weglassen müsst weil er nicht mit XOPEN=500 funktioniert. mit m ist st_mode aus der Struktur gemeint, das Macro gibt dann 0 oder 1 zurück un kann in ifs verwendet werden.


Datei hat folgende Rechte : rwxr–r-- also 111100100

dann würde ich aber bitweises oder und 101111111 nehmen, oder nicht?
soweit ich weis bekommt man dann ja auch nicht 1 oder 0 zurückgeliefert sondern eine bitfolge. wie habt ihr das denn implementiert? odr seit ihr nicht soweit?+

mikey: für die zugriffsrechte gibt es keine markos


sorry warn schreibfehler mein fuer den filetype :wink:


wir muessen die macros benutzen???
oder koennen wir???
es gibt doch auch flags wie zb S_IFLNK die man testen kann


glaub net das wir das MÜSSEN!

btw: für leute dies auch net wissen. die falgs sind nur durch bitweise ver-und/oder-ung abfragbar.

(stat.st_mode & S_IRUSR)==256?printf(“r”):printf(“-”);

so hab ich das jetzt gemacht. und ganz ohne hilfe :wink:
danke trotzdem


Wisst ihr was lustig wäre? … Wenn einige von euch die Aufgabe 3 mit einer Sortierung wie in Aufgabe 2 abgeben würden :slight_smile: … ich glaube nicht, dass die Ausgabe von readdir alphabetisch sortiert ist, oder? :slight_smile:

Zu den “Flags” hatte ich mir eine Funktion geschrieben die das zusammenbaut (z.B. drwxr-xr-x) …

Dort drin die Abfrage mittels der Makros genau wie Eem schon schrieb. Die Makros stehen alle in “man lstat”. Was ich dabei etwas erstaunlich finde, ist dass der Typ DOOR nicht vorkommt. Aber es gibt ja leider auch keine Solariskisten mehr im Cippool … braucht man also nicht wissen/haben/wollen, oder? :frowning:


hmm… wie meinstn das? Wir haben uns auch schon gestritten ob das nun verlangt ist oder nicht. explizit dastehen tuts in der aufgabe ja nich…

wie war das bei euch letztes jahr? :smiley:


Es muss nix sortiert werden. Alles so ausgeben, wie es kommt. Laufen muss es auf den I386 Linux Kisten - also auch nix mit irgendwelchen Sun Erweiterungen. Wenn ihr da jetzt für alle möglichen Unix Abarten Sonderbehandlungen reinbaut, werdet ihr nie fertig…


Also ich hab meine Ausgabe alphabetisch nach den Dateinamen sortiert, schliesslich macht ls -l das ja auch und viel Aufwand wars auch nicht gerade (Copy&Paste aus Aufgabe 2 halt). Bläht halt den Code etwas auf :slight_smile:


Es ist nicht verlangt die Ausgabe von ls zu sortieren, es ist zwar kein Schaden wenn man es tut aber wie gesagt nicht verlangt und bringt auch keine zusätzlichen Punkte!

P.S.: Ergebnisse A2 sind draussen :slight_smile:


Schade … keine Fleißbienchen? :slight_smile:

Bei uns war es auch nicht verlangt … aber man dachte bei den Anfangsaufgaben ja noch naiv, den Übungsleiter beeindrucken zu können indem man alle vorherigen Aufgaben mit einbaut g

Grüße,
Sebbi


Der Übungsleiter regt sich höchstens auf wenn er sich durch jede Menge extra Code wühlen muss g :smiley:


mich regt auf, wenn ich auf ein voll funktionsfähiges wsort nur 4 Punkte bekomme!
beschwerdemailschreib


da es ein script gibt das die programme bewertet sind fehler durchaus zu erwarten. imho gibts da relativ viele fälle.
n kumpel von mir hat z.B. nur 4 pkte obwohl der kleinöder gmeint hat das das wohl 12 werden.
also ruhig beschweren…


Oh ja ! dieses Skript is zum kotzen ! Vor allem die Punktedifferenz zwischen Mailskript - Ergebniss und dem ergebnis des Aufrufs
punkte Kleinoeder(“wieviele?”);

… also die verwirrung is perfekt ! Ich glaube dass der Aufwand sich jeden durch die Korrektur (!!!) entstandenen Fehler nochmal angucken zu muessen vielleicht doch etwas groesser is als das vielleicht echte Leute mit echten Augen und echtem Hirn machen zu lassen … :wand: :wand: :wand:


Ich glaube du unterschaetzt die Arbeit, Loesungen von 245 Leuten zu korrigieren.
:finger:

Sicher kann man das genauer machen, wenn man jede Loesung per Hand nachschaut, sich in den Code jedesmal reindenkt, und die Bewertung einem Hirn ueberlaesst und nicht einem Skript, allerdings ist das wesentlich mehr Aufwand, wofuer es schlichtweg kein Geld gibt. Es gab mal 8 Uebungsleiter, jetzt sinds noch 3. Beim per Hand korrigieren koennen einem allerdings auch Fehler unterlaufen, v.a. wenn man das stundenlang macht.

Das Skript laueft auch im allgemeinen ganz gut, muss jedoch mit teilweise abstrusen Loesungen zurecht kommen. Da gibts Leute die machen einen malloc(0) um einen Zeiger zu bekommen oder debugausgaben zwischenrein. Auserdem heisst es noch lange nicht, dass wenn das Programm in einigen Faellen das erwartete Ergebniss liefert, dass es auch korrekt ist. Es gibt Moeglichkeiten, falsche Speicherzugriffe festzustellen, die nicht gleich zum SegFault fuehren, da sind einige reingefallen, auserdem wenden wir umfangreichere Tests an. Nicht zu vergessen so Zeug wie Makefile, das auch Punkte gibt.
Aber bitte jetzt net alle kommen und um einzelne Punkte betteln, die Zeit fehlt uns dann zum korrigieren bzw. um genauere Skripten zu schreiben.

Wenn ihr Zweifel habt, dass die Korrektur richtig war, z.B. 4 Punkte obwohl Makefile geht, wsort immer(fuer die ausgegebenen Quellen) richtig(=genauso wie sort) sortiert, dann koennt ihr zu eurem Uebungsleiter kommen. Wenn ihr 0 Punkte habt koennt, obwohl alles prima laeuft koennt ihr zu dem kommen, von dem ihr abgeschrieben habt g , die Matrix hat einige erwischt!


Ahhhhhhhhh… „What is the Matrix?!“…