The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблемя взаимодействия fork и socket с библиотеками"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблемя взаимодействия fork и socket с библиотеками"  
Сообщение от ibm (ok) on 07-Июл-06, 21:55 
Пишу программу, в которой используется для весьма глючное внешнее
устройство.
Фирменная библиотека для работы с ним тоже особой одиренноть не отлячается.
однако устройство необходимо. Программа с использванием данной библиотеки
должна компилиться со след. опциями: -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

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Проблемя взаимодействия fork и socket с библиотеками"  
Сообщение от DeadMustdie email(??) on 09-Июл-06, 15:52 
Ручаться не буду, но все очень похоже на старый-старый Linux плюс
мерзость по имени LinuxThreads плюс библиотеки, пользующие оный
LinuxThreads.
(а) апгрейд ОС должен помочь
(б) можно чуток пересмотреть логику программы и обойтись-таки
pthread'ами вместо fork()'а.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру