При написании простой программы для POSIX-совместимой ОС, которая принимает входные данные и выдает выходные данные, когда и почему следует предпочитать
myprogram file.in
над
myprogram < file.in
и наоборот?
Мне нравится последнее, потому что я чувствую, что обработка файлов должна быть ответственностью оболочки, а не моей программы.С другой стороны, я не совсем уверен, как один и тот же код может работать как для файлов, так и для stdin - разве stdin не должен быть интерактивным, т.е. запрашивать у вас ввод?Принимая во внимание, что в файле формат понят и предопределен, например, существует одно целое число, которое является входным значением (в этом случае другой вариант будет просто принимать значение в качестве аргумента командной строки), иликаждая строка содержит контрольный пример, представляющий собой список чисел, разделенных пробелами, и т. д.
Примеры были бы хорошими.
Обратите внимание, что я уже видел Перенаправление оболочкиvs явный код обработки файлов , и ни один из ответов не ответил на этот вопрос в общем смысле.