Хм... оно есть на СИ, но пусть лежит и здесь))


читать дальше