Dieses angebliche Programm schreibt in die von Ihnen angegebene Dateideskriptornummer. Betrachten Sie das folgende Hallo-Welt-Programm:
#include <stdio.h>
main()
{
ssize_t i = 0 ;
printf ("hello world\n") ;
i = write( 5 , "Bonjour Monde\n", 14 ) ;
printf ("%d octet dans 5\n", (int) i) ;
}
kompiliere es
me@mybox:~/tmp7$ make hw
cc hw.c -o hw
jetzt ein einfacher Lauf
me@mybox:~/tmp7$ ./hw
hello world
-1 octet dans 5
Keine Datei für 5, also kein Byte geschrieben.
nächster Versuch:
me@mybox:~/tmp7$ ./hw 5> u
hello world
14 octet dans 5
me@mybox:~/tmp7$ cat u
Bonjour Monde
Ich schaffe es, eine Ausgabe zu erhalten, während ich eine Datei und einen Dateideskriptor (z 5>u
. B. ) spezifiziere .
In der Praxis ist es unwahrscheinlich, dass Sie Daten mit sammeln, es sei denn, Sie haben ein so lustiges Programm wie oben geschrieben 5>foo
.
Im Shell-Skript sind Konstrukte mit <() nützlicher:
diff <( cmd -par 1 ) <(cmd -par 2)