Пишу программу, в которой используется для весьма глючное внешнее
устройство.
Фирменная библиотека для работы с ним тоже особой одиренноть не отлячается.
однако устройство необходимо. Программа с использванием данной библиотеки
должна компилиться со след. опциями: -lxerces-c -ldl -lpthread -lc -lSDL.
Признаюсь честно ни с одной из этих библиотек до селе не работал. Проблемы
следующие;
1) При вызове fork(): Когда chil процесс завершает свою работ после вызова
return (в дочернем процессе) родительский не получает SIGCHILD и waitpid не
вызывается поскольку сигнала нет.
Мало того дочерний процесс в таблице процессов обозначается как обычнай
процесс, а не как зомби. Дочерний процесс при этом точно доходит до rerurn.2) При вызове:
server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
создается 3 процесса такого вида:
appolo:# pstree -a
| |-bash
| | -all.bin
| | |-all.bin
| | | -all.bin <- Cоздаються при вызове socket
| | -all.bin <- Остаток от fork
Подскажите что можно тут сделать. Одно точно, что если выкинуть это
устройство с его библиотекой все работает как надо и fork и socket