Написание stdin и чтение от stdout (программирование Unix / Linux / c)

Я работал над заданием, в котором программа взяла дескриптор файлов в качестве аргумента (как правило, от родителя в вызове Exec) и прочитал из Файл и написал в файловый дескриптор, а в моем тестировании я понял, что программа будет работать с командной строки и не дает ошибку, если я использовал 0, 1 или 2 в качестве дескриптора файла. Это имело смысл мне, за исключением того, что я мог бы написать в Stdin и у него покажет на экране.

Есть пояснение для этого? Я всегда думал, что на stdin / stdout была некоторая защита, и вы, безусловно, не можете FPRINTF stdin или fgets из Stdout.

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
    char message[20];
    read(STDOUT_FILENO, message, 20);
    write(STDIN_FILENO, message, 20);

    return 0;
}
15
задан Tim 12 September 2011 в 05:54
поделиться