Откройте каталог, используя opendir()
, прочитайте имена файлов (readdir()
) в массив, затем выполните qsort()
для этого массива с обратным вызовом, используя stat()
, чтобы прочитать даты создания или изменения, которые вызатем, в свою очередь, используйте, чтобы сказать qsort()
, как сортировать.Не забудьте закрыть каталог, используя closedir()
(Это может быть еще более эффективным после модификации, предложенной в комментарии larsmans ниже).
Наконец, после сортировки, выполните первую / последнюю запись массива (в зависимости от того, как вы отсортировали) и все готово.
Если доступно, вы также можете просто использовать scandir()
, чтобы сделать все это сразу (хотя вы не будете обходиться, делая больше вызовов stat (), чем это необходимо), поскольку это должно быть сделано в обратном вызове сравнения qsort для этого решения).
PS: У кого-нибудь есть идея, как сделать это атомарно?