Fluxos Padrões

Standard Input

int value;
fscanf(stdin, “%d”, &value);
scanf(“%d”, &value); // Equivalente à linha anterior cin >> value; // Em C++

Standard Output

fprintf(stdout, “%s”, “Hello World\n”);

printf(“Hello World\n”); // Equivalente à linha anterior
cout << “Hello World” << endl; // Em C++

Standard Error

fprintf(stderr, “Application error\n”);

cerr << “Application error” << endl;

Redirecionamento de Fluxo

image

#include <stdio.h>
#include <stdlib.h>
int main(void) {
int valor;
scanf("%d", &valor);
fprintf(stderr, "Recebi %d\n", valor);
printf("%d\n", valor + 1);
return (EXIT_SUCCESS); }

Entrada e saída pelo terminal

paulo@notebook:~$ gcc exemplo.c -o fluxo paulo@notebook:~$ ./fluxo 1 Recebi 1 2 paulo@notebook:~$

paulo@notebook:~$ ./fluxo < /dev/zero Recebi 0 1 paulo@notebook:~$

paulo@notebook:~$ ./fluxo < /dev/zero > saida.txt Recebi 0 paulo@notebook:~$ cat saida.txt 1 paulo@notebook:~$

paulo@notebook:~$ ./fluxo < /dev/zero 2>/dev/null 1 paulo@notebook:~$

paulo@notebook:~$ ./fluxo < /dev/zero | ./fluxo Recebi 0 Recebi 1 2 paulo@notebook:~$

paulo@notebook:~$ ./fluxo < /dev/zero | \ > ./fluxo | ./fluxo | ./fluxo Recebi 0 Recebi 1 Recebi 2 Recebi 3 4 paulo@notebook:~$