Este supuesto programa escribirá en el número de descriptor de archivo que especificó. considere el siguiente programa hello world:
#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) ;
}
compilarlo
me@mybox:~/tmp7$ make hw
cc hw.c -o hw
ahora una carrera simple
me@mybox:~/tmp7$ ./hw
hello world
-1 octet dans 5
no hay archivo para 5, por lo que no se escribió ningún byte.
siguiente intento:
me@mybox:~/tmp7$ ./hw 5> u
hello world
14 octet dans 5
me@mybox:~/tmp7$ cat u
Bonjour Monde
Me las arreglo para obtener un resultado al especificar un archivo y un descriptor de archivo (por ejemplo 5>u
).
En la práctica, a menos que haya escrito un programa tan divertido como el anterior, es poco probable que recopile datos utilizando 5>foo
.
en el script de shell, construir usando <() son más útiles:
diff <( cmd -par 1 ) <(cmd -par 2)