¿Por qué escribe write () antes de printf () en la redirección de salida?

Así que séprintf() es un nivel más alto quewrite() y termina usandowrite(). Printf() está protegido ywrite() realiza llamadas al sistema.

Ejemplo 1, si tuviera que ejecutar un programa conprintf() antes dewrite() entonces generaría el valor deprintf() antes del valor dewrite().

Ejemplo 2, si tuviera que ejecutar el mismo programa y hacer que pasara por la redirección de salida a un archivo, el valor dewrite() salidas antes deprintf().

#include <stdio.h>
#include <unistd.h>

int main()
{
    printf("This is a printf test\n");
    write(STDOUT_FILENO, "This is a write test\n", 21);
    return 0;
}

No entiendo lo que está pasando aquí. En el ejemplo 1, ¿está el programa esperandoprintf()s salida antes de ejecutarwrite()? En el ejemplo 2, ¿el programa está redirigiendo la primera salida que está lista? Y porquéwrite() es de nivel inferior y no necesita almacenarse comoprintf() entonces se imprime primero?

Respuestas a la pregunta(6)

Su respuesta a la pregunta