Спасибо за коментарий. Кое в чем не согласен, пропробую оправдаться. Можете проигнорировать, если нет желания дискутировать ;)>1. ужас в том что вроде как С++, а реально С кошмарный.
>Если уж С++, то и использовать для большей части действий средства
>C++ (стримы, строки, работа с файлами). Можно же реализовать большую часть
>кода (или весь) не опускаясь до работы с системными вызовами.
Потоки C++ тормоза, и я страюсь обходится без них. Системные вызовы не считаю злом.
>3. вы используете не юниксовый способ названия переменных и функций, поэтому читать
>непривычно. Обратите свое внимание на code styles принятые в *nix, gnu.
Я пишу под *nix и под Win32, coding style мой собственный, принятый в проекте.
>4. ошибка при проверки write(), в проверке надо учитывать и положительный результат
>тоже:
+
>5. злоупотребление оператором ::
+
>6. _alloca() - зло.
Наоборот, считаю его добром, которое быстро выделяет память и позволяет не заботиться о ее освобождении. Если есть ссылки на материалы, в которых аргументироно объясняется, что это зло, с интересом почитаю.
>7. что за муть с линками?
man 2 open говорит, что лучше делать так для лок файлов.
>8. и ваще название функции вводит в заблужение, какой такой Exclusive Lock))
>нету его в линухе.
+
>9. лучше open() либо с флагами O_CREAT|O_WRONLY|O_TRUNC, либо creat(). Вы же ни
>читаете в данном случае.
+. Сначала собирался читать, потом передумал.
>10. <- раз подумать прежде чем игнорить маску (тут это вообще не
>нужно). в данном куске кода при open failed маска у вас
>не восстанавливается.
+. Спасибо, пропустил.
>
>ЗЫ лучше всего взять и посмотреть исходники программ в которых уже реализована
>нужная функция, благо их полно для изучения.
Я не большой знаток софта под *nix, на вскидку не могу ничего придумать, куда бы посмотреть.