Компилируется и работает. Но небольшой фикс. Правильно так:
[code]
const char *fmt __attribute__((unused)),
[/code]
иначе не скомпилируется:
[code]
aa.c: В функции <>:
aa.c:3:24: ошибка: параметр <> не используется [-Werror=unused-parameter]
[/code]
> а что нибудь без контроллера реально? @iru, соберите одновибратор с нужной задержкой на 555-й микросхеме. Дешево и сердито. Скажем, поставите RC-цепочку на 10 секунд, и сколько раз ни щелкайте в течение этих 10 секунд кнопку, все равно срабатывания не будет.
А если я неправильно понял вопрос, и нужно наоборот сделать: чтобы сработало на N-е нажатие, то можно использовать триггер Шмидта, счетчик и двоично-десятичный декодер. Но в этом случае уже дешевле будет на МК сделать (скажем, STM8S003 вообще ~30 центов стоит; мелкие STM32 тоже меньше бакса).
@Truerz, вы говорили, что процессы дописывают в файл, т.е. предыдущая информация остается нетронутой. Ну и куда они будут утеряны, если вы просто заблокируете файл, допишете в него, разблокируете? Если вам нужно обеспечить атомарность записи на случай сбоев, то делайте mmap файла в память, дописывайте, делайте munmap. Ядро позаботится о целостности.
А зачем именно блокировка файла? Можно ведь мьютекс какой-нибудь завести для этого! А если хочется файл, то в разделяемой памяти создавайте псевдофайл, его и блокируйте...
К сожалению, если многогранник будет сложным, то алгоритм может внезапно уткнуться в свои ограничения. Я часто наблюдаю подобное в "автообрезке" панорамы hugin'ом.
Здесь, скорее, нужно не общий алгоритм пытаться изобрести, а частный, учитывая особенности исходного изображения.