LINUX.ORG.RU

Сообщения tarle

 

tcp socket Опять, простите...

Кто-нибудь может мне прокомментировать следущую строчку:  %-О

tcp  0  0 192.168.1.10:rcms  192.168.1.10:rcms  ESTABLISHED 364/module          

Это как вы понимаете `netstat -tp`...
Смысл с вледующе: module -- вообще-то клиент.
Хочет он простого, пока сервера нет, раз в секунду пытается к нему 
коннектиться... Я может тупой да? Я вроде Socket FAQ читал, и Стивенс
вроде под рукой... И про TIMED_WAIT слышал... Точно тупой... 
Ибо слышал, а в толк взять не могу как с ним правильно работать... 
Вроде и shutdown  делаю и close... 

В общем не оставьте на погибель...
tarle
()

Motif, Xt & thread

Я понимаю, что ответ конечно rtfm, но...

Кто-нибудь мне скажет тоже самое относительно openMotif-а 2.2.2 и 2.2.3?

Хочется одной простой вещи: делать XtVaSetValues из треда. Нет, делать это можно, и даже виджет меняется, но не перерисовывается он собака, пока окошком не пошевелишь или мышкой не поелозишь... Глаза конечно боятся, а руки, как водится крюки... Но может скажет кто слово наших предков... %-о

tarle
()

Pixmap, XpmReadFileToPixmap & memory leaks

Сограждане... Вопрос собственно простой. Делаю следующее (скажем в цикле для проверки):

---
memset(&m_xpmAttr, 0, sizeof(XpmAttributes));
m_xpmAttr.valuemask = 0;

XpmReadFileToPixmap(
    m_display, win, 
    (char*)fileName.c_str(), 
    &m_pixmap, &m_clipMask,
    &m_xpmAttr);

XFreePixmap(m_display, m_pixmap);
XFreePixmap(m_display, m_clipMask);
XpmFreeAttributes(&m_xpmAttr);
---

Таки память течет... Именно в приложении. Я уже совсем сон потерял... Исходники 
разных вроде грамотно сделанных приклад смотрел -- там все стараются xpm один раз 
грузить (и вообще ни рожна не очищать). Да и я впринципе тоже так могу... 
Но уже дело принципа... Может кто в курсе? Пошел пока читать исходники motif-a...

PS. Либа кстати openMotif-2.2.2
tarle
()

X, motif, XDrawString, XmString, etc...

Простите, я наверное тупой что ли... А могу я создать (имеется ввиду чистый XmString) или нарисовать прямо на drawable (имеется ввиду чистый Xlib) вертикально-ориентированную строку? Я уж не спрашиваю о строке с произвольным уклоном... %-о

Коли rtfm в натуре, то хоть главу подскажите, а?.. А-то оба мануала прошерстил... Наискосок правда...

tarle
()

autoconf AC_TRY_CPP

Сограждане... Такой вопрос. Пишу в configure.in следующее:
AC_TRY_CPP(
[#include <streambuf>
],
AC_MSG_RESULT([checking for C++ <streambuf>... yes]),
AC_MSG_ERROR([checking for C++ <streambuf>... no]))

Контекст вопроса, простите ламерский: g++ -E набранный мной из консоли на 
файл распечатанный из configure (думал может пишу чего не так) нормально работает,
а внутри configure соответственно ругается на то, что файла streambuf -- нету...

Ну и вдогонку совсем позорный вопрос: где простите этот gcc/g++ ищет хидеры, когда ему
ничего не указано в качестве параметров? Нет я не совсем дурак: переменные C_INCLUDE_PATH
и CPLUS_INCLUDE_PATH -- у меня не определены... В spec-фале я вроде тоже не нашел путей к 
/usr/include/c++/<ver>...
tarle
()

perlembed & garbage collection или не дайте умереть дураком

Сограждане, не поленитесь чиркнуть пару строчек, кто давно 
разобрался с предметом...

Вопрос в сущности простой. 

Делаю я в своей С-программе следующее

---
	HV* hvcmd = newHV();
	SV* keystr = newSVpv("str", 4);
	SV* keybin = newSVpv("bin", 4);

	SV* strs[2];
	SV* bins[2];
	strs[0] = newSVpv("str1", 5);
	strs[1] = newSVpv("str2", 5);
	bins[0] = newSVpv("bin1", 5);
	bins[1] = newSVpv("bin2", 5);
	AV* avstr = av_make(2, (SV**)strs);
	AV* avbin = av_make(2, (SV**)bins);
	
	hv_store(hvcmd, "str", 3, newRV_noinc((SV*)avstr), 0);
	hv_store(hvcmd, "bin", 3, newRV_noinc((SV*)avbin), 0);

	AV* inCmds = get_av("g_inCmd", TRUE);
	av_push(inCmds, newRV_noinc((SV*)hvcmd));
	
	call_argv("q", G_DISCARD | G_NOARGS, NULL);
---
Причем делаю это в цикле...

В функции q я его собственно печатаю и даллее очищаю:
---
sub q
{
	print Data::Dumper->Dump([\@g_inCmd], [qw(g_inCmd)]), " \n";
	@g_inCmd = ();
}
---

В итоге на каждой иттерации получаю массив хешей массивов типа:
$g_inCmd = [
             {
               'bin' => [
                          'bin1',
                          'bin2'
                        ],
               'str' => [
                          'str1',
                          'str2'
                        ]
             },
				...];


Внимание вопрос: объясните дураку почему у меня память течет?
Можно ткнуть в конкретное место perlguts или perlapi...
Ну простите, не понял я еще до конца как он внутри устроен... ;(

игрался я и с 	
strs[0] = sv_2mortal(newSVpv("str1", 5));
и с 
sv_unref(strs[0]);

В общем налицо непонимание... ;-\
tarle
()

CommonC++ socket

Граждане-товарищи, извините что я к вам обращаюсь. Вопрос конечно тупой, 1-3 дня внимательного изучения документации и исходников, и его бы не было. Просто время поджимает... В общем ближе к делу.

Кто использовал модный нынче CommonC++? Подскажите слудующее пожалуйста:

Класс ost::tcpstream, который позиционируется как "сlass for use by non-threaded applications" на самом деле ведь можно разделять из двух потоков? Ну если через блокировки? Или я дурак?

В общем мне нужна простая штука: совместный доступ двух потоков к сокету.

PS. Почему CommonC++? -- Хороший вопрос. Надоело изобретать новые трехколесные велосипеды сваренные из водопроводных труб.

PPS. Если кто-нибудь может сказать аргументированную гадость про CommonC++ -- сделайте это пожалуйста.

tarle
()

Снова emacs, простите... (+cedet)

Коллеги, не подскажет кто дураку пару слов про пакеты semantic, eieio и пр. аксеесуары,
входящие в пакет cedet... А-то вроде нашел, что искал последние года полтора (что так
недавно нашел, извините времени не густо ;) и все вроде работает замечательно... (особенно
вместе с Xref ) Одна неприятность только.

Предположим есть кусок файла
--------
    CVirtualChannelGroup qwe(n, "input.erevan_skala");
    qwe.|
    std::string clientName;
--------
Курсор находится во второй строке, в позиции "|". Вызываю я функцию 
semantic-ia-complete-symbol-menu, выбираю ясное дело нужный метод. Только этот качественный
пакет токены как-то хитро нарезает... В общем в результе имею что-то вроде:
--------
    CVirtualChannelGroup qwe(n, "input.erevan_skala");
    qwe.readNextMsg(clientName;
--------

Вот... Просьба ногами не бить, в принципе во всем можно разобраться самому, и доки на пакет
приличные, только время-время... Так что если у кто это победил уже, не пожалейте минутки --
на пару строчек...
tarle
()

gnome (metacity) и root window

Такой вопрос... Буквально прямо по теме форума... ;)

Кто-нибудь знает возможен ли в принципе доступ к рутовому Х окну, при использовании gnome (читай metacity -- у меня "из коробки")... Предыстория вопроса простая: ну люблю я xearth!.. ;)

Почему гном -- от mwm устал немного... ;-\

tarle
()

Использование tcl интерпретатора из c/c++.

Вопрос собственно несложный для тех, кто с этим уже наработался... Я только подошел недавно к этой замечательной проблеме (замечательной, это по открывающимся горизонтам "гибкости" ;).

Так вот. Никакого overveiw по данной темея я почему-то не нашел (тоже кстати побочный вопрос, если кто знает куда смотреть -- подскажите дураку) и начал втупую почитывать

man 3 Tcl_*

и собственно tcl.h... Теперь внимание вопрос:

возможно ли в принципе (и если да, то каким образом) следующее: имеется tcl-скрипт, в нем несколько функций объявлено скажем myproc0, ... , myprocN. Как мне из С вызывать эти функции?

Простите вопрос дурацкий наверное. Просто с Tcl_EvalFile, Tcl_GetVar, Tcl_SetVar я уже наигрался и начитался. А вот с Tcl_ParseCommand и Tcl_EvalTokensStandard -- небольшой ступор. Ведь именно их надо использовать для этого? Или нет? И каким образом параметры передавать?..

В общем у кого времечко есть -- поясните парой строк, а?

tarle
()

linux ввод/вывод ISA

Простите, за предудущую тему -- случайно сорвалось... ;(

Итак, я немного боюсь что мой вопрос будет из класса "Помогите", но все же...

Ситуация: Есть простая как Чебурашка ISA-шная плата (если вдруг кто в курсе Fastwel Unio-xx5), у нее есть диапаозо портов ввода/вывола, прерывание можно ее заставить генерить, и один канал dma устроить и умеет она вводить и выводить разные сигналы в зависимости от прошивки. Ну да вопрос не в этом. Помимо документации есть с ней примеры под dos, да-да есть такая операционная система... ;)

Первое что сделал ваш покорный слуга -- втупую переписал dos-овский пример под линукс заменяя inportb на inb inport на inw и аналогичные процедуры с outportX, не забыв перед всем этим безобразием вставить

iopl(3);

Тут началось довольно интересное... Код схемы -- прекрасно читается (порт с адресом А), а вот слово состояния (порт с адресом В) -- хрен. Нулики там, чего с ней не делай...

Базовый адрес менял, в /proc/ioports глядел... В общем только "баллоны не пинал"...

Засомневался в железяке -- раскопал где-то дискетку с виндами 98 и компилятор борландовский -- собрал дос-овский пример -- пашет как часы!

Внимание ВОПРОС: понимаю, что ситуация достаточно конкретная, а вопрос абстрактный и на конкретный ответ рассчитывать странно (если только кто-то с этой плятой прямо работал). Но тем не менее апеллирую к опыту и интуиции коллег: если диапазон ввода/выводи никем не занят, то ПОЧЕМУ такая тупая штука работает по разному в доске и linux-e?

PS. Да, в модуль тоже попробовал все это засунуть. С захватом ресурсов и пр... Ресурсы захватываются, а данных как нет так и нет. ;-(((

Простите, за многословность. Если кто будет так добр и потребует подробностей -- подробности будут.

tarle
()

tcl binary, прости Господи

Тема наверное избитая... Но все же кто может прокомментировать слудующее: tcl8.3 и 8.4 любопытно обрабатывают следующую команду:

binary format i -1

(формат в принципе можут быть любой, хоть с, хоть, s...)

Так вот... ожидается на выходе 0xff 0xff 0xff 0xff... Вместо этого 0x3f 0x3f 0x3f 0x3f... По исходникам полазал -- в перекодировке юникода увяз. ;( Вроде бы казалось простая вещь... Неужели уж две версии как не работает?

Ну пните если что... Только ответсвуйте! ;)

tarle
()

socket-ы, как ни странно...

Такой значится вопрос... Толи лыжи не едут, то ли я...

Есть клиент который коннектится к произвольному пользовательскуму серверу. Ну и не приконнектиться ему никак значит (ну нет например сервера пока еще). Вот он у меня значит коннектиться, коннектится... И при некотором удочном сочетаннии числа клиентов и долгого времени отсутствия сервера -- получается занятная вещь: один из клиентов занимает серверный порт...

Сервер ясное дело уже вываливется с ошибкой бинда...

Даки посоветуйте, а? Сокеты корректно закрываю/открываю,не плодятся они... Ерунда какая-то. ;(

Да, разговор о gcc, libc и libsocket соответственно.

tarle
()

И снова socket-ы ;-)

Итак, банальная избитая тема... Но меня как-то поразил эффект. Расскажите на какие настройки сокетов мне глядеть...

А ситуация такая:
- клиент и сервер на разных машинах. Связаны потоковым соединением. На сервере неблокируемый send(), на клиенте блокируемый read().

- Вырываем шнурок из любой машины => соединение на клиенте засыпает, сервер через некоторое время соединение закрывает совсем (смотрю netstat-ом и socklist-ом).

- Вставляем шнурок. И тут начинается самое интересное... Иногда клиент "понимает", что сеодинение закрыто на серверной стороне -- тогда все ок -- завершение, переконнект и победа. Иногда он продолжает упорно висеть в recv()... И вышеупомянутый netstat твердо уверен, что соединение существует! ;\

tarle
()

Motif - mnemonic

Может кто сталкивался с подобным. Есть Open Motif 2.2. Вполне законно хочу сделать сабж в менюбаре. Для этого делаю приблизительно следующее:


Widget menuBar = XmCreateMenuBar(parant, "MyMenu", NULL, 0);
Widget fileBtn = XtVaCreateManagerWidget("File",
xmCascadeButtonWidgetClass, menuBar,
XmNmnemonic, XStringToKeysym("F"),
NULL);


Остановимся пока на этом. Дальше происходят интересные вещи: некоторое время после перезапуска Х-ов это даже работает (в том числе и в сабменю). Потом перестает до следующего перезапуска...;) После чего именно - понять не могу, вначале казалось после xkb переключения - оказалось не влияет...


То же с кириллическими мненониками (только те в подменю не работают сразу).

tarle
()

Опять про emacs

subj.

Может на зубах уже навязло некоторым, но еще раз для тупых: каким образом в emacs-е нормально настроить completion? Существующие дял этого пакеты? Под нормально понимается: - он сам парсит подключенные файлы и ищет в них соответствующий тег - обращает внимание на области видимости - может предложить список членов класса/структуры (из области фантастики?) ;)

Где по моему completion нормальный - vim и да простит меня linux-сообщество - Visual Assist (ну что я могу сделать? Объективно ребята неплохой интелисенс написали... ;)).

tarle
()

kernel-2.4.7-10 by RH7.2

Совет сильно требуется...

Вообще ситуация сильно похожа на описанную в (http://www.linux.org.ru/view-message.jsp?msgid=248211&scroll=group&ba...)

Т.е. порядок сборки ядра мне вообще-то известен, кроме того еще пару раз внимательно вдвоем собирали (пока с параметрами игрались). Итак. После установки нового ядра все идет сначала нормально, распаковывает дро, грузится с рам-диска, грузит ext-3 модуль, меняет рутовую фс, начинает выполнять init, доходит до rc.sysinit-а. И в нем виснет в "sleep 1" ;-)(это тот, который после приглашения к нажатию 'I' для интрактивного стартапа). Если слип комментировать, то виснет в следеющей команде отличной от echo. (echo-м то как раз и искалось мето остановки).

Может кто знает куда смотреть? Комплекс неполноценноси уже формируется ;(. Эти же скрипты с RH ядром работают (старое ядро пашет как конь... на этоц же тачке причем - е в железе дело). В конфигурашках уже чего только не менял... В т.ч. брал у соседа ту, из которой он собирал свое ядро. Ставили с одного дистрибутива вообще...

Машины немного разные, ну на это поправка была сделана. Все знакомые "гуру" за голову хватаются, когда слышат про то что загрузка останавливается в слипе... (и при этом доходит до этого момента...;()

Ну в общем заранее спасибо, если что.

tarle
()

RSS подписка на новые темы