Beiträge von xxfunkxx

    Hi malibu!
    Schreibe mal auf wie Deine Partitionen (z.B. hda1 für Windows, hda2 für Linux) heißen. Welchen Bootmanager (grub, lilo,..) benutzt Du?

    Am einfachsten kannst Du eine Partition lesend und schreibend für beide Syteme benutzen indem Du sie fat32 formatierst.

    Wenn Du Deine Linuxpartition ext2 oder ext3 formatiert hast dann kannst Du mit dem Tool ext2fs
    auch von Windows auf die Linuxpartition zugreifen.
    xxfunkxx

    Hallo!
    Ich habe in einem char array das ich mir aus einer named piped einlese folgendes drinstehen:

    Was ich darus brauche sind die rot markierten Zeilen.
    Das sind Playlist die ich brauche um sie an andere Stelle anzuzeigen und auswählen zu können.
    Mit der Funktion strstr() kann ich mir die Position anzeigen lassen an der die zu suchende Zeichenkette auftritt.
    Also so zum Beispiel:

    Code
    iln = read(imp3out, output , 8191);
       /* ... */
       char *loc;
       loc = strstr(output, "--> ");
       printf( "\n\t%s wurde an Position %d gefunden.\n\n\n", ".lst", loc-output);
       loc = strstr(output, "--> ");
       printf( "\n\t%s wurde an Position %d gefunden.\n\n\n", ".lst", loc-output);



    Nun bekomme ich aber nur EINMAL raus an welcher Stelle diese Kombination auftritt. Aber ich muß ja mehrmals nach "--> " suchen.
    Und dann habe ich ja erst die Position der Zeichenkombination.
    Ich hab mir nun gedacht. Suche ich anschließend nach ".lst"
    Die Zeichen dazwischen sind dann der Name der Playlist.
    Ich frage mich nur ob das nicht auch einfacher geht.
    Ich bin leider nicht so fit mit Stringmanipulation in C.
    Vielleicht kann mir ja jemand weiterhelfen und noch ein paar Tipps geben.
    Vielen Dank

    xxfunkxx

    Hallo!
    In meinem C-Programm möchte ich die Funktion strnset() verwenden
    um eine spezifizierte Anzahl von Zeichen in ein angegebenes Zeichen zu verändern.

    Diese Funktion ist allerdings keine ANSI-C Funktion und steht in meiner string.h auch nicht drin. Auf vielen Seiten habe ich aber gesehen das einfach der Header string.h verwendet wird.

    Kann mir jemand sagen wo ich den Code für nicht ANSI-C Funktion bekommen kann.

    xxfunkx

    Ich ab meinen Fehler gefunden. Die dynamischen Arrays waren einfach zu klein angelegt. Das hab ioch jezu so angepaßt, dass ich auf jedenfall die doppelte Größe habe und außerdem hab ich die Fehlerabfrage gleich nach der Speicherzuweisung eingebaut.

    Code
    addlist = (char *) calloc (2, strlen(my_string) + sizeof("addlist ") + 2); 
     if(addlist == NULL) {
        printf("\t---> Not enough RAM for pointer addlist!\n");
        exit(1);
     }

    Hallo!
    Ich programmiere einen mp3-Player den man über ein kleines LCD Display mit 4 Buttons ansteuern kann. Hierzu verwende ich den Player imp3sh. Den imp3sh Player kann man über named pipes Steuerbefehle schicken um ihm zu sagen was er machen soll (PLAY, STOP, NEXT SONG, LOAD PLAYLIST, etc.).
    In meinem C-Programm habe ich eine handler-Funktion mit der ich auf Buttonevents reagieren kann.

    Gut das ist der Hintergrund des Programms. Jetzt mal zu meinem Problem.

    Ich habe eine Funktion geschrieben in der ich den Player initialisiere. Dort werden alle meine Playlist geladen.
    In initialize_player() allokiere ich mir Speicher mittels calloc() für zwei char Zeiger, die ich weiter unten wieder mit free() freigebe. Hier bekomme ich aber bei der Ausführung einen Segmentaion fault (siehe rotes Kommentar)
    Mir ist nicht klar warum?

    Der Code der Funktion sieht so aus:



    Um Steuerbefehle über die named pipes zu schicken habe ich eine weitere Funktion names write_imp3in() geschrieben, die sieht so aus:
    Die Steuerbefehle müssen immer mit \n abschließen




    Kann mir jemand weiterhelfen?

    xxfunkxx

    Bisher hatte ich eigentlich noch nie Problem ein Dualbootsystem aufzusetzen. Auch mit grub oder lilo haben die Systeme bisher immer funktioniert.
    ich muß nur grub wieder aus der Windowssystemplatte rauskriegen. Ist bei der WinXP ein rescuetool dabei?

    SCSI-Platten: Sind die wirklich so verdammt viel schneller?

    Hab grub zuerst in die root Partition schreiben lassen.
    Danach konnte ich nicht mehr booten.
    Dann hab ich dummerweise grub noch in die Windowspartition schreiben lassen.
    Danach hab ich lilo in MBR schreiben lassen und ich konnte zumindest mein Linix wieder benutzen.

    Hallo Raftaman!
    Also ich hatte letzte Woche das gleiche Problem. Hab nach einer Hardwareinstallation von einer BootCD (Kanotix auf Basis von Debian Sid) auch grub in die /root Partition geschrieben.

    Nach dem Booten hängte sich grub immer mit Fehler 17 auf.
    Was ich danach getan habe ist folgendes:
    Boote erneute von der LiveCD.
    1. Terminal öffnen. Und

    Zitat

    $ sudo su


    tippen. Jetzt bist Du superuser
    2. Deine root Partition auf dem sich Deine Festplatteninstallation befindet umounten

    Zitat

    # umount /mnt/hda6


    welches die root Partition ist kannst Du feststellen indem Du in die Konsole

    Zitat

    # less /etc/fstab


    schreibst. Das ist die file system table. Der Eintrag mit / it Deine root Partition
    könnte zum Beispiel so aussehen:

    Zitat

    /dev/hda6 / ext2 errors=remount-ro 0 1


    Also hier /dev/hda6.

    So das heißt Du schreibst in die Konsole

    Zitat

    umount /mnt/hda6


    Es kann auch sein, dass die Partition garnicht eingehängt war, dann gehts gleich weiter mit Punkt 3.


    3. Jetzt wird das root System wieder gemountet. In der Konsole

    Zitat

    # mount /dev/hda6 /mnt/hda6

    4. die root-Partition als virtuelles Wurzelverzeichnis behandeln

    Zitat

    # chroot /mnt/hda6

    5. Lilo als Bootloader in den MBR schreiben. Natürlich noch /etc/lilo.conf anpassen.

    Zitat

    lilo -v

    So damit hats bei mir geklappt, das ich mein Linux System wieder starten konnte.
    Schau Die auch mal Grub und Lilo an.


    Allerdings befindet sich mein Windowssystem auch noch irgendwo bisher unerreichbar zum Booten.
    Es kommt immer die grub-shell und ich weiß nicht was ich da eingeben muß um
    Windows zu starten. Werde ich aber noch rauskriegen!


    xxfunkxx

    Hab jetzt noch ne andere WinXP ins Netzwerk gehängt und die kann auch nicht auf die Freigabe zugreifen.
    Es kommt mal wieder die Meldung

    Zitat


    Auf \\Moon kann nicht zugegriffen werden. Sie haben eventuell keine Berechtigung, diese Netzwerkressource zu verwenden. Wenden Sie sich an den Administrator des Servers, um herauszufinden, ob sie über die Berechtigungen verfügen.

    Zgiff verweigert.


    Man das nervt. Ich denke ich hab wirklich alle Haken gesetzt, bzw. weggeklickt.
    Wo liegt denn da der Hund begraben?

    xxfunkxx