Я думаю, что № 2 от Пейтон - самый подходящий ответ на вопрос.
Возможно, «ls» - не лучший пример команды, для которой вы хотели бы ее использовать, поскольку для этого есть другие функции библиотеки C, но есть другие программы, которые генерируют выходные данные, которые вам могут понадобиться. обрабатывать немедленно, не выполняя запись / чтение в файл.
# 1 также хорош в системе типов UNIX / Linux, которая реализует эффективную файловую систему RAM, которая может использоваться для чтения / записи глобальных данных системы. Практически во всех системах это действительно хороший «быстрый» и «грязный» способ выполнить работу.
Опять же, большинство ответов предлагают лучшие способы получения содержимого каталога с использованием собственных библиотек C, но есть случаи, когда такие функции, как pipe (), fork (), dup (), exec (), system ( ) и popen () подходят для связи с системными процессами.