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(); } Zitieren
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. Zitieren
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 Zitieren
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 . Zitieren
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 Zitieren
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. Zitieren
bequiet Geschrieben 23. März 2009 Autor Geschrieben 23. März 2009 problem gelöst, kann closed werden. Danke für die Hilfe. Zitieren
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. Zitieren
Guybrush Threepwood Geschrieben 11. März 2010 Geschrieben 11. März 2010 schon blöd wenn der Thread ein Jahr alt ist Zitieren
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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.