Иной раз бывает необходимо перенести, кажется, кроссплатформенный код, из windows && visual studio на linux && Eclipse. Но в процессе выясняется, что какими-то самыми простыми функциями winAPI программисты всё же пользовались. Например, часто бывает, что это функция Sleep(). Такие случае в принципе проблем не доставляют: подключаем другой заголовочный файл место windows.h, пишем sleep с маленькой буквы и...программа перестаёт работать. А всё дело в чём? В параметрах. первая функция принимала число миллисекунд, на которые следует задержать выполнение, а функция sleep из unistd.h в качестве параметра предполагает секунды. Вот и получается, что вместо трети секунды, пауза длится три минуты.
Мораль: программист, помни: любая "магия" имеет под собой вполне логичное объяснение