Posts by alexf91

    Lass den src Ordner einfach weg, du hättest dann also export PATH=$HOME/pintos-progos/utils:$PATH


    Das Archiv würde ich direkt im Home Verzeichnis entpacken oder einen Link auf das tatsächliche Verzeichnis erstellen, da die Tools in utils Probleme mit Leerzeichen im Pfad haben.


    http://linux.die.net/man/3/qsort
    Ich nehm mal an das Beispiel aus den man pages ist nicht falsch aber warum hat es bei mir nicht funktioniert?


    Der Unterschied zwischen deinem Code und der Man-Page liegt darin, dass argv ein Pointer auf einen Pointer auf einen Char ist:
    Im Speicher sieht das so aus, dass sich ab der Stelle argv insgesamt argc Pointer auf chars befinden.


    Bei einem Array ist das anders:

    Code
    1. char input[2][3];


    bedeutet, dass an der Stelle input insgesamt 6 char in einer Reihe liegen.


    Um auf dein Beispiel zurückzukommen: bei qsort ist size genau der Wert, um den base inkrementiert werden muss, um den nächsten Eintrag zu erhalten.
    Bei einem "echten" Array ist das die Länge, bei argv jedoch sizeof(char *), wobei dieser Pointer zusätzlich noch dereferenziert werden muss.


    Zur Veranschaulichung kannst du dir ja dieses Beispiel ansehen:

    Für strcmp sollte auch folgendes reichen:

    Code
    1. strcmp((const char*) p1, (const char*) p2);


    nmemb muss die Anzahl der tatsächlich eingelesenen Strings sein, nicht die maximale Anzahl.
    An diesen Speicherstellen steht sonst nur Müll.

    Das hatte ich vorher schon gefunden.
    Das Problem hat sich in diesem Fall ja von selbst gelöst ("The problem solved itself today (without my help).")


    Ich verstehe aber nicht, warum der Fehler auftritt


    Das sind alle Symbole, die das Modul vom Kernel benötigt, um zu funktionieren.
    Es schlägt aber nur memcpy fehl, die anderen funktionieren alle.
    memcpy ist definitiv vorhanden, das wird ja im Kernel praktisch überall verwendet.

    Hallo,
    ich bin gerade auf einen seltsamen Fehler gestoßen.
    Bei mir ist memcpy nicht verfügbar, obwohl ich linux/string.h inkludiert habe.
    Beim Laden des Moduls bricht insmod mit

    Code
    1. insmod: error inserting 'secvault.ko': -1 Unknown symbol in module


    ab.
    dmesg liefert mir

    Code
    1. secvault: Unknown symbol memcpy (err 0)


    Das Module lässt sich ohne Fehler und Warnungen übersetzen.
    Außerdem ist memcpy in /proc/kallsyms vorhanden, es ist also im Kernel verfügbar.

    Wie legt ihr die Files in /dev an?
    Über ein Skript mit mknod wie im Buch beschrieben oder mit device_create() direkt aus dem Modul heraus?
    Mit mknod sind am Anfang ja schon alle 5 Files vorhanden, svctl kann also nur noch die internen Strukturen anlegen.


    Soll es außerdem möglich sein, dass mehrere svctl Programme gleichzeitig auf sv_ctl zugreifen?
    Ich habe das nämlich jetzt so gelöst, dass open mit einem Fehler abbricht, falls das Device schon offen ist.


    Die Abgabe ist übrigens erst am Sonntag (26.1.).

    Also ich parse die Eingabe mit strtol und breche die Ausführung ab, wenn ein fehlerhaftes Zeichen gelesen wird.


    Müssen wir eigentlich Signalbehandlung implementieren? Bei mir kann es nämlich passieren, dass, wenn der Server beendet wird, der Client ewig auf einen Semaphor wartet.

    Du kannst die Datei ja auch ohne Extension öffnen ;-)
    Die Datei enthält im Prinzip die Adjazenzmatrix eines Graphen mit 50 Knoten.


    Die Aufgabe ist das Lösen des Traveling-Salesman Problems mit verschiedenen Verfahren.
    Ich hab das ganze mit Matlab programmiert.

    Hi Leute,
    ich hab bei Aufgabe 6.2 (Integer Teilaufgabe) mit Hugs folgende Fehlermeldung:

    Code
    1. ERROR - Unresolved overloading
    2. *** Type : (Num a, SimNf a) => Bool
    3. *** Expression : similar 1 2


    Weiß jemand, wie man das behebt?


    Mit ghci funktioniert übrigens alles einwandfrei.


    Edit: Hat sich erledigt. Liegt wohl daran, wie hugs Argumente verarbeitet. mit "similar (toInteger 1) (toInteger 2)" gehts

    sieht super aus, aber wie kann ich das ausführen? Copy und Paste into hugs?
    Da fehlen mir dann doch die Definitionen für t1,t2, usw. oder?


    Entweder die Hunit Testcases in das gleiche File wie deine Funktionen (bzw. diese importieren) oder t1, t2 usw. mit let t1 = xxxxx definieren.
    Die 2. Methode funktioniert aber nur mit ghci.

    Es gibt Haskell Private.
    Ich habe das aber so verstanden, dass das nicht verpflichtend ist und nicht bewertet wird.
    Es geht eher darum, dass man Tips/Kritik bezüglich seiner Lösungsstrategien bekommt.

    Soweit ich mich erinnere waren es beim 1. 15 für die richtige Argumentbehandlung und dann noch 15 für die Berechnung der Gesamtlänge.
    Beim 2. 15 für den Aufbau der Verbindung, 6? für den richtigen Rückgabewert, falls eine Verbindung nicht zustande kommt und der Rest dann für die Kommunikation und die Ausgabe.


    Die Ergebnisse sind übrigens in MyTi online.

    In C ist das mit den Größen der Datentypen so eine Sache...
    Ein int muss z.B. mindestens 16 Bit breit sein, kann aber auch größer sein.
    Bei mir (64 Bit Linux) ist sizeof(int) == 4.
    Du kannst dich also darauf verlassen, dass ein int mindestens 2 Byte groß ist, aber nicht darauf, dass bei nach 0xFFFF ein Überlauf passiert.