2016-09-23 4 views
5

Mir wurde gesagt, dass die Funktion dprintf() beim Schreiben von Daten in Pipes nützlich sein kann. Problem ist, ich kann keine Beispiele finden, die erklären, wie man es benutzt. Ich habe alles in diesem Link gelesen, verstehe es aber immer noch nicht.Wie benutze ich dprintf()

Nur ein sehr einfaches Beispiel wird mir helfen, viel zu verstehen. wenn ich eine Pfeife habe zum Beispiel:

int fd[2]; 
pipe(fd); 

und ein paar pids

pid_t ID1, ID2, ID3; 

wie kann ich dprintf(), um diese PIDs an das Rohr zu schreiben?

Antwort

7

dprintf funktioniert wie fprintf, mit Ausnahme der erste Parameter ein Dateideskriptor (d.h. ein int) anstelle eines FILE * ist.

dprintf(fd[0], "%d : %d : %d", ID1, ID2, ID3); 
+0

Danke! Kannst du mehrere Dinge in einer Zeile schreiben wie in fprintf? – Bob

+1

@Bob Sure. Alles andere neben dem ersten Parameter ist genau gleich. – dbush