Read y Write no solo sirven para escribir/leer en ficheros de los de toda la vida, por ejemplo hola.txt etc..., sino que tambien se pueden redirigir a los 3 descriptores estandar.
Por ejemplo, si no se han redefinido otros descriptores estandart(de los que arranca el programa, 0->entrada estandar, 1-> salida estandart, 2-> error estandart) puede leerse de la terminal perfectamente con:
read(0,buffer,sizeof(buffer)) <- lee de la entrada estandar, es decir, el teclado. Esto ocurre porque la tty tambien es un fichero.
Aunque como Mephisto dijo, es mejor usar printf, fgets, etc, para mostrar/coger, ya que es un poco tosquillo hacerlo con write/read, aunque poder se puede jeje
Y sprintf, en algunas lineas, lo estas implementando mal, digamos que sprintf sirve para formar una ruta, cadena etc..
#
Código:
include <stdio.h>
int
main()
{
char pepe[]="Hola";
char pepo[]="Adios";
char juntos[80]; //ojo con esto, si se le mete mas da overflow
sprintf(juntos,"%s/%s",pepe,pepo);
printf("%s\n",juntos);
return 0;
}
Y da como resultado: Hola/Adios
Saludos