LINUX.ORG.RU

Сообщения vsrmis

 

Как узнать использует программа 1 процессор или несколько?

Форум — Development

Программа написана на Cи++ ,скомпилирована в g++ работает с 100-200 потоками через p_thread. процессор Core - i5; top выдаёт 20% +/- 5% CPU

vsrmis
()

SafeThread ncurses

Форум — Development

Нужно запустить около 100-200 потоков которые будут печатать на экран функцией addch(char ch); ncurses Не потоко-безопасный, потому я использовал мютексы. Вот таким велосипедом.

pthread_mutex_t mutex;
...

void TS_print_char(int x,int y){
// SafeThread функция вывода случайного символа на экран.
pthread_mutex_lock(&mutex);
        move(x,y);
        char ch = get_good_char();
        addch(ch);
        refresh();
pthread_mutex_unlock(&mutex);
}
Код упрощён для опытов, и чтоб отразить суть. Но при большом количестве потоков всё-равно происходят некие исключения. И вываливаются некрасивые белые строки( у меня всё зелёное) . Опытным путём определил что именно в функции addch() Почему? ведь этот код не могут использовать 2 потока! Или операция pthread_mutex_lock(&mutex); не такая уж и атомарная и не может выдержать натиск 100 потоков? Тогда какую систему синхронизации вы посоветуете?

vsrmis
()

ncurses цвета

Форум — Development

Нужно чтоб все сиволы были зелёными на чёрном фоне. Поэтому перед выполнением основного кода сделал

    init_pair(1, COLOR_GREEN, COLOR_BLACK );
    bkgd( COLOR_PAIR(1) );
Н вот понадобилось сделать иногда некоторые символы белыми на чёрном фоне. Точнее символ должен появиться белым потом тут-же перекраситься в зелёный.

хотелось так

    init_pair(1, COLOR_GREEN, COLOR_BLACK );
    init_pair(2, COLOR_WHITE, COLOR_BLACK);
//...
// вывод символа.
        move(x,y);
        char ch = get_good_char()|COLOR_PAIR(1);
        addch(ch);
        refresh();
        usleep(10000);
        move(x,y);
        ch = get_good_char()|COLOR_PAIR(2);
        addch(ch);
        refresh();

Но всё получается белым. Да и ещё с некоторыми багами связаными уже с работой программы, это изза usleep(10000); внутри критической секции(pthread), тут либо архитектуру менять, либо придумывать другой способ мигающего белого символа.

Но самый главнй вопрос, всё-же почему вышеуказанный код рисует всё белым? Если добавить bkgd( COLOR_PAIR(1) ); то все символы зелёные, и никто не мигает.

vsrmis
()

struct ** Основы C работа с указателями

Форум — Development

Сделал структуру


typedef struct{
        int col;
        int r_begin;
        int r_end;
}parm;
И мне надо целый массив этих структур. Думал сделать так

  parm *p[13];
        for (i=0;i<10;i++){
                p[i]->col = i;
                p[i]->r_begin = rand()%5;
                p[i]->r_end = rand()%30;
        } 

- ОШИБКА СЕГМЕНТИРОВАНИЯ. Думал так

parm **p = new parm*(10);
компилятор ругаеться alex@alex-Lenovo-B570 ~/Proj/Cpp $ ./build_and_run.sh first.cpp: В функции «void engine()»: first.cpp:71:25: ошибка: некорректное преобразование из «int» в «parm*» [-fpermissive]

vsrmis
()

Pyside Cannot parse file: ../data/typesystem.xml

Форум — Development

Взял этот пример http://lynxline.com/superhybrids-part-2-now-qt-pyside/ при сборке выкидывает ошибку

alex@alex-Lenovo-B570 ~/Загрузки/superhybrids_macports $ ./build.sh
make: Цель `first' не требует выполнения команд.
Fatal error: line=3, column=62, message=Failed to parse: 'typesystem_core.xml'

Cannot parse file: ../data/typesystem.xmlWARNING: Failure to find: pyhybrid/pyhybrid_module_wrapper.cpp
WARNING: Failure to find: pyhybrid/mainwindow_wrapper.cpp
make: *** Нет правила для сборки цели `pyhybrid/pyhybrid_module_wrapper.cpp', требуемой для `pyhybrid_module_wrapper.o'.  Останов.

Насколько я понимаю ошибка при чтении файла typesystem.xml

вот он

<?xml version="1.0"?>
<typesystem package="PyHybrid">
    <load-typesystem name="typesystem_core.xml" generate="no"/>
    <load-typesystem name="typesystem_gui.xml" generate="no"/>
    <object-type name="MainWindow"/>
</typesystem>
Где тут подвох?

vsrmis
()

Qt OpenGl объекты

Форум — Development

Возможно я сильно разбалован ООП. Но я хотел бы на Gl сцену помещать обьекты которые знают как себя рисовать, им нужно только сообщит на чём рисовать.

То есть что-то около этого

class Fig{
public:
    float A1,A2,B1,B2,C1,C2,D1,D2;
    Fig(float a1,float a2,float b1,float b2, float c1 ,float c2,float d1,float d2){
        A1=a1;
        A2=a2;
        B1=b1;
        B2=b2;
        C1=c1;
        C2=c2;
        D1=d1;
        D2=d2;
     }

    void draw(QGLWidget widget){
        QColor sqare(90, 60, 90, 150);
        widget.qglColor(sqare);
        widget.glBegin(widget.GL_QUADS);
            widget.glVertex3f( A1,A2, 0.0f);  // Слева вверху
            widget.glVertex3f( B1,B2, 0.0f);  // Справа вверху
            widget.glVertex3f( C1,C2, 0.f);  // Справа внизу
            widget.glVertex3f( D1 ,D2, 0.0f);  // Слева внизу
        widget.glEnd();
    }
};

Но компилятор ругается что QGLWidget не содержит тех функций. widget.glBegin и widget.glEnd() и т.д. Как бы реализовать что-то подобное.

vsrmis
()

relocation R_X86_64_32S

Форум — Development
rm -f libHybrid.so.1.0.0 libHybrid.so libHybrid.so.1 libHybrid.so.1.0
g++ -m64 -Wl,-O1 -shared -Wl,-soname,libHybrid.so.1 -o libHybrid.so.1.0.0 build/MainWindow.o build/moc_MainWindow.o   -L/usr/lib/x86_64-linux-gnu -lQtGui -lQtCore -lpthread  
/usr/bin/ld: build/MainWindow.o: relocation R_X86_64_32S against `vtable for MainWindow' can not be used when making a shared object; recompile with -fPIC
build/MainWindow.o: could not read symbols: Bad value
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [../libHybrid.so.1.0.0] Ошибка 1

Прочёл что должны быть установлены быть добавлены к CXXFLAGS и CFLAGS -fPIC . Но они у меня добавлены. Теряюсь в чём принина. PS. Реализую этот мануал. http://habrahabr.ru/blogs/qt_software/120479/

vsrmis
()

Qt + xls

Форум — Development

Курсач. В качестве исходных данных. Пара столбиков из документа xls. Как их прочесть? Нашел неплохо вот тут.http://www.code-guru.ru/code/%D1%81%D0%B8%D0%BD%D1%82%D0%B5%D0%B7-qt-%D0%B8-excel Но там есть как считать. Насколько я понял нужно давать запросы. Но где их найти. Есть ещё варианты работы как с базой. Но как, где есть какие-либо примеры или документация, как прочесть какие либо значения из xls. Желательно кросплатформенно, ибо писать буду на Linux, а сдавать надо под виндой.

vsrmis
()

Jdeveloper на X64

Форум — Development

Установил Jdeveloper Запускаю, вижу ошибку

alex@alex-desktop:~/Oracle/Middleware/jdeveloper/jdev/bin$ sudo ./jdev
[sudo] password for alex: 

Oracle JDeveloper 11g Release 2 (11.1.2.1.0)
Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 

08.12.2011 10:18:00 oracle.ide.osgi.boot.LauncherUtil throttleLocale
INFO: Locale ru_UA is not supported by this product. Forcing locale to en_US.
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/alex/Oracle/Middleware/jdk160_24/jre/lib/i386/libsplashscreen.so: libX11.so.6: cannot open shared object file: No such file or directory
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1806)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1723)
	at java.lang.Runtime.loadLibrary0(Runtime.java:823)
	at java.lang.System.loadLibrary(System.java:1028)
	at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.SplashScreen.getSplashScreen(SplashScreen.java:91)
	at oracle.ide.osgi.boot.OracleIdeLauncher.getSimpleSplashImage(OracleIdeLauncher.java:539)
	at oracle.ide.osgi.boot.OracleIdeLauncher.main(OracleIdeLauncher.java:82)
	at oracle.ide.osgi.boot.JDeveloper.main(JDeveloper.java:14)



Насколько я понимаю, это изза того что моя платформа 64 бита, и устанавляимаю я под i386. Как это побороть?
vsrmis
()

Не запускаеться исполняемый фаил

Форум — General

Всё просто как сапог. Но почему он говорит Нет файла?

bash: ./jdevstudio11121install.bin: Нет такого файла или каталога
alex@alex-desktop:~$ chmod 777 jdevstudio11121install.bin 
alex@alex-desktop:~$ ls -l
итого 1196756
-rw-r--r-- 1 alex alex        179 2011-11-25 10:39 examples.desktop
-rwxrwxrwx 1 alex alex 1225430667 2011-11-29 13:50 jdevstudio11121install.bin
drwxr-xr-x 3 alex alex       4096 2011-11-29 02:38 oradiag_alex
drwxr-xr-x 2 alex alex       4096 2011-11-25 10:44 Видео
drwxr-xr-x 2 alex alex       4096 2011-11-25 10:44 Документы
drwxr-xr-x 5 alex alex       4096 2011-12-02 10:29 Загрузки
drwxr-xr-x 2 alex alex       4096 2011-11-25 10:44 Картинки
drwxr-xr-x 2 alex alex       4096 2011-11-25 10:44 Музыка
drwxr-xr-x 2 alex alex       4096 2011-11-25 10:44 Общедоступные
drwxr-xr-x 2 alex alex       4096 2011-11-25 10:44 Рабочий стол
drwxr-xr-x 2 alex alex       4096 2011-11-25 10:44 Шаблоны
alex@alex-desktop:~$ ./jdevstudio11121install.bin
bash: ./jdevstudio11121install.bin: Нет такого файла или каталога
vsrmis
()

Qdialog отменить согласие

Форум — Development
void HelloDialog::on_buttonBox_accepted()
{
    if (!(ui->lineEdit->text().isEmpty())){
        emit SendResults(ui->lineEdit->text());
    }
    else {
        QMessageBox::information(this, "Empty Fields!!","Some fields are empty,you will cach error connecting to server");
    }
}

on_buttonBox_accepted() вызывается уже после закрытия формы диалога. Как бы сделать так, чтоб я мог отменить её закрытие в случае неправильных данных.

vsrmis
()

QStrind to DataStrem to byte array to data streem to byte array to QString

Форум — Development

Клиент посылает сообщение

    QByteArray block;
    QDataStream out(&block, QIODevice::WriteOnly);
    out.setVersion(QDataStream::Qt_4_0);
    out << "Hello Server";
    tcpSocket->write(block);
как бы серверу его принять?
 QByteArray data = con->readAll();
    if(!data.isEmpty()) {

        QDataStream streem(&data, QIODevice::ReadOnly);
        streem.setVersion(QDataStream::Qt_4_0);
        QString S;
        // как бы взять и из QDataStream перенести даные в S
       // stream>>S; выдаёт пустой S
        qDebug()<<S;
    }

vsrmis
()

QtNetwork

Форум — Development

Хочу сделать клиент серверное приложение ЧАТ. Пишу сначала сервер, в качестве клиента взял example подредактированый мной.У сервера есть много клиентов, я их храню в в Qlist< QTcpSocket*>. Сервер уже умеет отправлять клиентам сообщение. Надо сделать так чтоб умел и принимать. Перед заносом в Qlist< QTcpSocket*> я делаю connect(clientConnection,SIGNAL(readyRead()), this,SLOT(getMess())); А в getMess() проверяю кто мне что-то послал.

void Server::getMess(){
    QTcpSocket * con;
    foreach(con,Users){
        if (con->bytesAvailable()>0){
            QByteArray data = con->read(con->bytesAvailable());
            QString myString(data);
            qDebug()<<myString;
        }
    }

}

Но почему-то myString выходит пустой.

В клиенте посылаю так

    QByteArray block;
    QDataStream out(&block, QIODevice::WriteOnly);
    out.setVersion(QDataStream::Qt_4_0);
    out << (quint16)0;
    out << "Hello Server";
    out.device()->seek(0);
    out << (quint16)(block.size() - sizeof(quint16));
    tcpSocket->write(block);
vsrmis
()

Установка Oracle на 11.10

Форум — General

Никак не выходит, как только делаю sudo /etc/init.d/oracle-xe configure так вылетает

Starting Oracle Net Listener...touch: cannot touch `/var/lock/subsys/listener': No such file or directory Done Configuring database... Database Configuration failed. Look into /u01/app/oracle/product/11.2.0/xe/config/log for details

В логах фигурирует ошибка

ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0


как тут быть?

Перемещено JB из Development

vsrmis
()

Неудовлетворённые зависимости

Форум — General

alex@alex-Lenovo-B570:~/Загрузки/Disk1$ rpm -i ./*.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
error: Failed dependencies:
	glibc >= 2.3.4 is needed by oracle-xe-11.2.0-1.0.x86_64
	libaio >= 0.3.104 is needed by oracle-xe-11.2.0-1.0.x86_64
	/bin/sh is needed by oracle-xe-11.2.0-1.0.x86_64
alex@alex-Lenovo-B570:~/Загрузки/Disk1$ getconf GNU_LIBC_VERSION
glibc 2.13


ПО чемуто инсталятор не вилит моего glibc
А до libaio  я ещё вообще не рыл.
vsrmis
()

Ubunto 11.10 Grub не работает

Форум — Linux-install

Установил Ubuntu 11.10. Grub теперь не работает. мигает что-то,И черный экран. Пытался делать c Linux Mint 9 grub-install. Результата ноль. Но он мне давал. list of partitions not found в конце, Но ядра линукс находил.

На машине стоят: Ubuntu 11.10 Linux Mint 11 debian.

Но в Grub Я не могу войти. Как его восстановить? update-grub, grub-install перепробовал. не работает.

vsrmis
()

evaluateJavaScript QT

Форум — Development

Есть сайт На нём примерно такое содержание

var a='блаблабла ТЕЕГИ ТЕКСТ, РАМКИ ЦВЕТА, Текст, Теги,';
document.write(a);
Надо это проинтерпретировать как Яваскрипт. Думал этот код справиться, но нет:( Почему?

view->page()->mainFrame()->evaluateJavaScript(
          view->page()->mainFrame()->toPlainText()
                     ); 
S =  view->page()->mainFrame().toHtml();

vsrmis
()

Qt WebView не работает

Форум — Development

какзалось бы куда проще

    QWebView *view = new QWebView(this);
    view->load(QUrl("www.google.ru"));
    ui->textBrowser->setText(view->page()->mainFrame()->toHtml()
            );
    view->show();
Но после выполнения textbrowser остаётся пустым, и его show() показывает белый прямоугольничек.

vsrmis
()

простой JavaSkript в Qt

Форум — Development

Нужно в программе выполнить простой JavaSkript И получить текст который он возвратит. Как это сделать ? Я замучался читая про навороченые V8 и WebKit. Мне не надо Выдавать целую HTML страницу? нужет именно текст HTML страницы. Что-то подобного роды

QSkriptEngine* engine = new QSkriptEngine(
"<script src='/js/head.js' type='text/javascript'></script>"
);

QString MyString = engine.run();
Есть ли что-то подобное мною выдуманому QSkriptEngine

vsrmis
()

QT #include <glib.h>

Форум — Development

Выкидывает ошибку что /media/Files/Media/Programming/Cpp/Qt/Projects/Notify/Notify/main.cpp:2: fatal error: glib.h: Нет такого файла или каталога

libglib2.0-dev установлен. В чём тут проблема может быть?

В интернете нашет такую информацию g++ -c b.c -o b.o `pkg-config --cflags glib-2.0`

Но это для gcc, как подобное прописать в QT ГДЕ В *.PRO файле вписать эти настройки?

vsrmis
()

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