Brauche Hilfe: Prozesse / Pipe

Dieses Thema im Forum "C/C++" wurde erstellt von Rittler, 02.11.2008.

  1. #1 Rittler, 02.11.2008
    Rittler

    Rittler Stümper

    Dabei seit:
    06.12.2007
    Beiträge:
    132
    Zustimmungen:
    0
    Ort:
    FS near MUC
    Hi @ all!

    Ich hab vor ein paar Wochen angefangen in C zu programmieren und habe nun ein Problem zu dem mir einfach nichts mehr einfällt. Und zwar geht es um folgendes:

    Ich habe 3 *.c Dateien, eine für den Parentprocecc, eine für den Childprocess und eine mit der main-Funktion. Der Plan ist nun, dass der main-Funktion ein Dateiname übergeben wird, welche dann vom Parentprocess eingelesen und in eine Pipe geschrieben wird und dann vom Childprocess auf der Konsole wieder ausgegeben wird.

    Es klappt alles bis zu dem Punkt an dem der Childprocess von der Pipe lesen soll, dort krieg ich immer einen 'bad adress' Fehler.

    Ich übergebe an die Childroutine den Pipedeskriptor und die Dateigröße, also:

    Code:
    int childRoutine(int *pipedeskriptor, long filesize)
    
    und lese dann in der Childroutine folgendermaßen von der Pipe, nachdem ich per

    Code:
    close(pipedeskriptor[1]);
    
    den writechannel der Pipe des Childprocess geschlossen habe

    Code:
    read(pipedeskriptor[0], buf, filesize);
    
    Könnt ihr mir sagen, wo da der Fehler liegen könnte?
    Ich hab echt keine Idee mehr...

    Vielen Dank schonmal für euere Hilfe!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 floyd62, 03.11.2008
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Wie ist "buf" definiert? Ist der Puffer gross genug (d.h. >filesize), oder solltest du vielleicht besser zeilen-/blockweise lesen/schreiben?

    Gruss
     
  4. #3 Rittler, 03.11.2008
    Zuletzt bearbeitet: 03.11.2008
    Rittler

    Rittler Stümper

    Dabei seit:
    06.12.2007
    Beiträge:
    132
    Zustimmungen:
    0
    Ort:
    FS near MUC
    Code:
    char *buf;
    long filesize;
    
    struct stat filestat;
    stat(filename, &filestat);
    filesize = filestat.st_size;
    
    buf = malloc(filesize);
    
    Müsste so passen...wenn ich mir buf vor dem beschreiben der pipe ausgeben lass, krieg ich auch genau den Inhalt der Datei...


    EDIT: Problem hat sich erledigt...Danke für den Tipp mit der Filesize...hab die n bissl größer gemacht, jetzt klappt alles!
     
Thema:

Brauche Hilfe: Prozesse / Pipe

Die Seite wird geladen...

Brauche Hilfe: Prozesse / Pipe - Ähnliche Themen

  1. Brauche Hilfe bei Lösunge einer Aufgabe

    Brauche Hilfe bei Lösunge einer Aufgabe: In der Dateil /etc/passwd sind zeilenweise alle User aufgelistet. Der Name ist dabei vom Zeilenanfang bis zum ersten Doppelpunkt. Erstellen Sie...
  2. Brauche hilfe bei einen Shell Script "-eq Parameter"

    Brauche hilfe bei einen Shell Script "-eq Parameter": Hallo miteinander, bin Neuling in shell Programmierung und brauche etwas Hilfe: und zwar möchte ich einige Zeilen aus einer Datei "user.db"...
  3. 1:1 NAT brauche Hilfe bei der Erstellung eines Shellscripts

    1:1 NAT brauche Hilfe bei der Erstellung eines Shellscripts: Hi, ich brauche Hilfe bei der Erstellung eines Shellskripts, was nach OpenVPN Neueinwahl die Datei /var/db/opt1_ip parst (in dieser Datei steht...
  4. Brauche hilfe von Profis mit opensuse 11.2

    Brauche hilfe von Profis mit opensuse 11.2: Irgend wie bekomme ich keine internet verbindung hin ob über kde manger oder manuell kann man es auch über der shell einrichten wäre nett wenn ich...
  5. Brauche dringend Hilfe nach System Rücksetzung

    Brauche dringend Hilfe nach System Rücksetzung: Hallo. Leider habe ich nicht viel Ahnung von Linux Programmen und habe nach einem Telefonat mit dem technischen Support von Hercules bei meinem...