Рассмотрите ресторан. Создание "сегодняшней еды" является шаблоном "фабрика", потому что Вы говорите, что кухня "получает меня, сегодняшняя еда" и кухня (фабрика) решают что объект генерировать, на основе скрытых критериев.
разработчик появляется, если Вы заказываете пользовательскую пиццу. В этом случае официант говорит шеф-повару (разработчик), "Мне нужна пицца; добавьте сыр, лук и бекон к нему!" Таким образом разработчик представляет атрибуты, которые сгенерированный объект должен иметь, но скрывает, как установить их.
Нет гарантии, что этот код компилируется, и он действительно совместим только с Linux и BSD:
#include <dirent.h>
...
int file_count = 0;
DIR * dirp;
struct dirent * entry;
dirp = opendir("path"); /* There should be error handling after this */
while ((entry = readdir(dirp)) != NULL) {
if (entry->d_type == DT_REG) { /* If the entry is a regular file */
file_count++;
}
}
closedir(dirp);