bequiet Geschrieben 23. März 2009 Geschrieben 23. März 2009 Hey leute. Vielleicht könnt ihr mir da helfen, hab ne Aufgabe ein C prog zu schreiben, welches eine Pipe erzeugt und die Integerwerte der zurückgelieferten Filedeskriptoren ausgibt. Danach soll des in die pipe schreiben und den Wert in die shell ausgeben. Hier mein Ansatz, funktioniert leider nicht^^ Danke im Vorraus. #include <sys/types.h> #include <stdio.h> #include <stdlib.h> int void(main) { int pfds[2]; char* test = "moep"; char buffer [512]; if(pipe( pfds ) < 0) { fprintf(stderr, "Fehler beim erstellen der Pipe"); } write( pfds[1], test, strlen(test)+1 ); read( pfds[0], buffer, 512 ); printf(); }
Klotzkopp Geschrieben 23. März 2009 Geschrieben 23. März 2009 funktioniert leider nicht^^ ...ist keine ausreichende Fehlerbeschreibung (siehe Signatur ). Aber als erster Tipp: int void(main) sieht nach einem Dreher aus.
bequiet Geschrieben 23. März 2009 Autor Geschrieben 23. März 2009 aah k.. habs getauscht. Jetzt kommen folgende Fehlermeldungen pipe2.c: In Funktion »main«: pipe2.c:9: Warnung: Initialisierung erzeugt Ganzzahl von Zeiger ohne Typkonvertierung pipe2.c:15: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »strlen« pipe2.c:15: Warnung: Ãœbergabe des Arguments 1 von »strlen« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung pipe2.c:15: Warnung: Ãœbergabe des Arguments 2 von »write« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung pipe2.c:18: Warnung: Ãœbergabe des Arguments 1 von »printf« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung pipe2.c:18: Warnung: Format ist kein Zeichenkettenliteral, und keine Formatargumente
Klotzkopp Geschrieben 23. März 2009 Geschrieben 23. März 2009 Keine Ahnung, was dein Compiler an Zeile 9 auszusetzen hat. Welcher ist es denn? Für strlen brauchst du <string.h>. Und printf ohne Parameter ergibt keinen Sinn .
bequiet Geschrieben 23. März 2009 Autor Geschrieben 23. März 2009 ja printf will ich die test ausgeben. habs nur nochnet reingeschrieben.. ich benutze gcc -o
bequiet Geschrieben 23. März 2009 Autor Geschrieben 23. März 2009 #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> int main(void) { int pfds[2]; char test = "adbcde"; char buffer[512]; if(pipe( pfds ) < 0 ) { fprintf(stderr, "Fehler beim erstellen der pipe"); } write( pfds[1], test, strlen(test)+1 ); read( pfds[0], buffer, 512 ); printf(test); } pipe2.c: In Funktion »main«: pipe2.c:10: Warnung: Initialisierung erzeugt Ganzzahl von Zeiger ohne Typkonvertierung pipe2.c:16: Warnung: Ãœbergabe des Arguments 1 von »strlen« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung pipe2.c:16: Warnung: Ãœbergabe des Arguments 2 von »write« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung pipe2.c:19: Warnung: Ãœbergabe des Arguments 1 von »printf« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung pipe2.c:19: Warnung: Format ist kein Zeichenkettenliteral, und keine Formatargumente So siehts aktuell aus, hab ein paar Sachen geändert.
bequiet Geschrieben 23. März 2009 Autor Geschrieben 23. März 2009 problem gelöst, kann closed werden. Danke für die Hilfe.
Crush Geschrieben 11. März 2010 Geschrieben 11. März 2010 Schon blöd wenn man Probleme aufwirft, löst und der Nachwelt die Lösung nicht zeigt.
Guybrush Threepwood Geschrieben 11. März 2010 Geschrieben 11. März 2010 schon blöd wenn der Thread ein Jahr alt ist
Crush Geschrieben 11. März 2010 Geschrieben 11. März 2010 Das war mir schon klar, mit der Lösung hätte ich ja nix sagen brauchen. Wenn das immer so laufen würde, müßte man ja ständig neue Threads zum selben Thema aufmachen. Ist das erwünscht? So hat bequiet wenigstens noch die Möglichkeit, die Lösung nachzuposten.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden