UNIX/Linux программерам - помогите, кто чем может
-
Засада
Есть 2 родственных процесса (один - родитель другого).
Родительский процесс принимает tcp-соединение функцией accept.
Как мне передать созданный этой функцией сокет в дочерний процесс, чтобы обрабатывать соединение (посылать и принимать данные) уже в нем?
Родительский процесс принимает tcp-соединение функцией accept.
Как мне передать созданный этой функцией сокет в дочерний процесс, чтобы обрабатывать соединение (посылать и принимать данные) уже в нем?
-
Незнайка
Опаньки, попался...
Тока сегодня тя вспоминал, а еще гадал: ты иль не ты ??????
Книжки и диски, гад, по дизассемблерам верни..... зашиваюсь......
А по теме: если accept() выполнена до fork(), то нет проблем...
Мне так кажицца, что несложно организовать весь ввод/вывод ( а прием новых соединений и дисконекты легко сделать через select() ) внутри одного процесса.
А если нужен второй, для обработки типа, то организовать обмен через канал или shared memory.
Ну да ладно - меня нужда заставляет, а ты че вдруг в юниксы подался ???????
Зы: ты в городе????? я тя через неделю ждал ))))
Зы: Зы: если это ты
Тока сегодня тя вспоминал, а еще гадал: ты иль не ты ??????
Книжки и диски, гад, по дизассемблерам верни..... зашиваюсь......
А по теме: если accept() выполнена до fork(), то нет проблем...
Мне так кажицца, что несложно организовать весь ввод/вывод ( а прием новых соединений и дисконекты легко сделать через select() ) внутри одного процесса.
А если нужен второй, для обработки типа, то организовать обмен через канал или shared memory.
Ну да ладно - меня нужда заставляет, а ты че вдруг в юниксы подался ???????
Зы: ты в городе????? я тя через неделю ждал ))))
Зы: Зы: если это ты
-
Засада
А кто же
Привет Володь
Звонил сегодня, но мобилка твоя меня посылает по адресуА домашний молчит, хорошо хоть дуру свою на автоответе отключил. Завтра(сегодня) позвоню.
Ты где? Переехал?
И вопрос тогда: А что если создать второй процесс не через fork(), а через clone() с флагом CLONE_FILES чтобы таблица файловых дескрипторов была у них общей?
Привет Володь
Звонил сегодня, но мобилка твоя меня посылает по адресуА домашний молчит, хорошо хоть дуру свою на автоответе отключил. Завтра(сегодня) позвоню.
Ты где? Переехал?
И вопрос тогда: А что если создать второй процесс не через fork(), а через clone() с флагом CLONE_FILES чтобы таблица файловых дескрипторов была у них общей?
Последний раз редактировалось Засада 20 фев 2003 08:15, всего редактировалось 1 раз.
-
Незнайка
Переедешь с вами.... балин....
И ваще.... нашел спеца....
Может оно конечно и катит, но получится не портабельно (словечко классное). Лучше треды тогда использовать. Они тоже используют clone() в линуксе, но портабельны. Хотя с другой стороны используют общую память… что тож сам понимаешь….
Фиг знает – по fork() порожденный процесс наследует все ранее открытые файлы, а потомку, обычно, соединение передается вместо stdin/stdout:
ХЗ, попробуй. А ваще
А ваще я спать хочу....
На улице уже светло, звони после обеда, че нить придумкаем, угу...
Зы: я все там же.... и тел те же....
И ваще.... нашел спеца....
Может оно конечно и катит, но получится не портабельно (словечко классное). Лучше треды тогда использовать. Они тоже используют clone() в линуксе, но портабельны. Хотя с другой стороны используют общую память… что тож сам понимаешь….
Фиг знает – по fork() порожденный процесс наследует все ранее открытые файлы, а потомку, обычно, соединение передается вместо stdin/stdout:
ХЗ, попробуй. А ваще
Код: Выделить всё
// может в начале где то
int save_stdin=dup(0);
int save_stdout=dup(1);
....
int sock=accept(...);
close(0);
close(1);
dup2(sock,0);
dup2(sock,1);
if(!fork()) { ....child... }
close(0);
close(1);
close(sock);
dup2(save_stdin,0);
dup2(save_stdout,1);
На улице уже светло, звони после обеда, че нить придумкаем, угу...
Зы: я все там же.... и тел те же....
-
Засада
ладненько
переехать не проблема, я уж подумал что к русалке в тамбов на вечно срулил - это было бы хужее (кде еще так с кайфом пивка попьешь)
шучу жди звонка
переехать не проблема, я уж подумал что к русалке в тамбов на вечно срулил - это было бы хужее (кде еще так с кайфом пивка попьешь)
шучу жди звонка
-
Засада
Можно еще вопросик?
Тут проблемка с русскими буквами в properties. Взял у тя на диске native2ascii, но она у меня работать не хочет. пользовался когданибудь?
Тут проблемка с русскими буквами в properties. Взял у тя на диске native2ascii, но она у меня работать не хочет. пользовался когданибудь?
-
Незнайка
Ну и колбасит тебя…. Я так и не понял, чем ты занимаешься…. Может объяснишь все же… интересно даже…. А то по тел я не понял ничего…
И ваще, сынок-мальчик ((с) тихоныч), всему тя учить надо… Ты хоть в документацию иногда заглядываешь… или методом тыка ))))
Хотя ладно – сам такой…
Короче, утилитка эта хреновая только тем, что при запуске без параметров работает со стандартным выходом (stdin)… а не выводит подсказку по ключам, как остальные…. Во всем остальном полностью рульная…. Ты попробуй для прикола указать используемую кодировку с помощью ключика -encoding )))) А то похоже по умолчанию работаешь (file.encoding)…
А ваще возьми за правило сначала helpы читать, а то так и будишь всю жизнь вместо того, чтоб коньяк попивать, ошибки в абсолютно правильном коде искать ))))
ЗЫ: и еще просьбочка: не плоди оффтопики типа 4, лучше в личку пиши, если связаться не можешь…
И ваще, сынок-мальчик ((с) тихоныч), всему тя учить надо… Ты хоть в документацию иногда заглядываешь… или методом тыка ))))
Хотя ладно – сам такой…
Короче, утилитка эта хреновая только тем, что при запуске без параметров работает со стандартным выходом (stdin)… а не выводит подсказку по ключам, как остальные…. Во всем остальном полностью рульная…. Ты попробуй для прикола указать используемую кодировку с помощью ключика -encoding )))) А то похоже по умолчанию работаешь (file.encoding)…
А ваще возьми за правило сначала helpы читать, а то так и будишь всю жизнь вместо того, чтоб коньяк попивать, ошибки в абсолютно правильном коде искать ))))
ЗЫ: и еще просьбочка: не плоди оффтопики типа 4, лучше в личку пиши, если связаться не можешь…
-
Незнайка
ЗЫ:ЗЫ: На всякий случай, если я тебя правильно понял: метод Properties.save работает по разному в версиях 1.1 и 1.2 ( я про JDK)
1.1 – просто отбрасывается старший байт, потому правильно работает только с англицкими буквами.
1.2 – делается вроде как обратное преобразование в «\ uxxxx», так что получается зеркально к методу load.
1.1 – просто отбрасывается старший байт, потому правильно работает только с англицкими буквами.
1.2 – делается вроде как обратное преобразование в «\ uxxxx», так что получается зеркально к методу load.
-
Незнайка
По моему ты че-то не допонял, поскольку мне кажется в ХР это точно должно быть по умолчанию... В 2К помню настраивал, а в ХР у меня лично по умолчанию встало...
Но уж коль не так, то найди ключ [HKEY_LOCAL_MACHINESystemCurrentControlSetControlClass
{4D36E96A-E325-11CE-BFC1-08002BE10318}-Х-]
Потом создай новый параметр "EnableUDMA66" DWORD типа и установи значение "1". Установка параметра в "0" приведет к блокировке...
Короче:
System Key: [HKEY_LOCAL_MACHINESystemCurrentControlSetControl\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}-X-]
Value Name: EnableUDMA66
Data Type: REG_DWORD (DWORD Value)
Value Data: (0 = disabled, 1 = enabled)
А по поводу оптимизации загрузочного диска. По умолчанию в ХР он точно отключен.
Твои шаги:
System Key: [HKEY_LOCAL_MACHINESOFTWAREMicrosoftDfrgBootOptimizeFunction]
Value Name: Enable
Data Type: REG_SZ (String Value)
Value Data: (Y = enabled, N = disabled)
Только копию сохрани на всякий )))))) Я уже не помню, где я это нарыл, первое не понадобилось, второе вроде работает.... А за пиво у меня еще куча прибамбасов есть ))))) зашел бы как нить....
Зы: Сижу и от "радио 101"
прусь... они bit rate чтоль снизили, ваще без глюков шпарит, то ли модем у меня сбесился.... Просто там твой любимый "Телевизор" недавно был, только песня другая...
Но уж коль не так, то найди ключ [HKEY_LOCAL_MACHINESystemCurrentControlSetControlClass
{4D36E96A-E325-11CE-BFC1-08002BE10318}-Х-]
Потом создай новый параметр "EnableUDMA66" DWORD типа и установи значение "1". Установка параметра в "0" приведет к блокировке...
Короче:
System Key: [HKEY_LOCAL_MACHINESystemCurrentControlSetControl\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}-X-]
Value Name: EnableUDMA66
Data Type: REG_DWORD (DWORD Value)
Value Data: (0 = disabled, 1 = enabled)
А по поводу оптимизации загрузочного диска. По умолчанию в ХР он точно отключен.
Твои шаги:
System Key: [HKEY_LOCAL_MACHINESOFTWAREMicrosoftDfrgBootOptimizeFunction]
Value Name: Enable
Data Type: REG_SZ (String Value)
Value Data: (Y = enabled, N = disabled)
Только копию сохрани на всякий )))))) Я уже не помню, где я это нарыл, первое не понадобилось, второе вроде работает.... А за пиво у меня еще куча прибамбасов есть ))))) зашел бы как нить....
Зы: Сижу и от "радио 101"
прусь... они bit rate чтоль снизили, ваще без глюков шпарит, то ли модем у меня сбесился.... Просто там твой любимый "Телевизор" недавно был, только песня другая...
-
Незнайка
Это те надо малость файл sysoc.inf для начала изменить.... (%SystemRoot%inf)
Формат там такой:
program=dll.inf entry, OcEntry, program.inf entry, numeral
Скрытые компоненты, содержат слово hide или HIDE. Для того, что бы сделать компонент видимым необходимо его кикнуть.
К примеру: MSWordPad=ocgen.dll,OcEntry,wordpad.inf,HIDE,7
Сделай: MSWordPad=ocgen.dll,OcEntry,wordpad.inf,,7
Можешь даже автозамену сделать, но в ручную быстрее, там их не много...
Потом смело шагай в панель управления - «добавление и удаление программ» - «компоненты Windows», где откроются все скрытые, ранее, компоненты
И удаляй, че твоей душе угодно...
Кстати, ты заметил, что мы тут двоем общаемся.... Может имеет смысл все подчистить и в личке болтать... ну на крайняк давай по аське поставим...
Резюме????
Формат там такой:
program=dll.inf entry, OcEntry, program.inf entry, numeral
Скрытые компоненты, содержат слово hide или HIDE. Для того, что бы сделать компонент видимым необходимо его кикнуть.
К примеру: MSWordPad=ocgen.dll,OcEntry,wordpad.inf,HIDE,7
Сделай: MSWordPad=ocgen.dll,OcEntry,wordpad.inf,,7
Можешь даже автозамену сделать, но в ручную быстрее, там их не много...
Потом смело шагай в панель управления - «добавление и удаление программ» - «компоненты Windows», где откроются все скрытые, ранее, компоненты
И удаляй, че твоей душе угодно...
Кстати, ты заметил, что мы тут двоем общаемся.... Может имеет смысл все подчистить и в личке болтать... ну на крайняк давай по аське поставим...
Резюме????
-
Незнайка
Отлично... я понял.... )))) завтра ночером займусь...)))))
По теме:
Найди ключ [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management], и погнали:
Для начала, чтоб XP сохранял данные в памяти вместо страниц памяти на жестком диске установи параметр DisablePagingExecutive в десятичную “1”.
Для того, чтобы ядро XP работало непосредственно в памяти, а не загружало различные модули с жесткого диска параметр LargeSystemCache так же загони в десятичную “1”.
У меня его не было, но по хелпам вроде должен бы быть... Короче, нужен dword параметр IOPageLockLimit. Это вроде как должно повлиять на скорость дискового КЭШа. Тебе его нужно установить в шестнадцатеричное значение 40000 (для 512Mb)А ваще, для информации: 128Mb - 4000; 256Mb - 10000...
Ты че со своей машиной сделать хочешь ??? В космос собрался???))))) Не забудь про "синию страницу мертвых" ))))))
По теме:
Найди ключ [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management], и погнали:
Для начала, чтоб XP сохранял данные в памяти вместо страниц памяти на жестком диске установи параметр DisablePagingExecutive в десятичную “1”.
Для того, чтобы ядро XP работало непосредственно в памяти, а не загружало различные модули с жесткого диска параметр LargeSystemCache так же загони в десятичную “1”.
У меня его не было, но по хелпам вроде должен бы быть... Короче, нужен dword параметр IOPageLockLimit. Это вроде как должно повлиять на скорость дискового КЭШа. Тебе его нужно установить в шестнадцатеричное значение 40000 (для 512Mb)А ваще, для информации: 128Mb - 4000; 256Mb - 10000...
Ты че со своей машиной сделать хочешь ??? В космос собрался???))))) Не забудь про "синию страницу мертвых" ))))))
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя
с тебя...