LINUX.ORG.RU

Сообщения neutrino

 

Работа, уйти или остаться.

Привет всем, нужен совет. Я C/C++ программист. Пишу на этих языках уже 6 лет. Опыт офисной работы больше года. Настали для меня тяжёлые времена, не были варианты работы и когда друг сказал что есть вариант оплачиваемого интерна в одной неплохой компании я с радостью пошел туда. Договорились с менеджером устно и меня приняли на интерншип, срок прохождения 5 месяцев. Компания ориентирована в основном на веб технологиях. Я в вебе особо не шарю и вот дали мне задание, на котором я застрял уже месяц и ничего не выходит пока. Кстати никакие бумаги до сих пор не подписаны. Конечно гугл всегда все знает, но по этой теме документации и примеров мало, особо не помогают, задаю вопросы, но получаю такие общие и «размазанные» ответы. Менеджер открыто намекает что после 6-и надо еще пару часов задержатся, говорит что все бумаги готовы, но никак дело не доходит до подписания. Словом остаться или уйти ? Ддругих предложений сейчас у меня нет. Спасибо

Перемещено tazhate из general

 , ,

neutrino
()

Как в nginx получить html код запрашиваемой страницы ?

Прохожу интерншип в одной компании, дали мне такое задание: написать модуль для nginx, которая кеширует страницы прямо в redis, то есть сперва пользователь делает запрос, nginx проверяет присутствует ли запрашиваемая страница в кеше redis если да то берет и возвращает пользователю, если нет, то обращается к бекенду берет оттуда страницу возвращает пользователю и записивает в кеш redis. Запись в кеш redis должен сделать именно nginx а не бекенд ..... такие уж условия. А теперь вопрос который мучает меня уже 3 недели, как в nginx получить html код запрашиваемой страницы (то есть html контент index.html страницы например), что бы потом записать в кеш redis ?

 , ,

neutrino
()

Nginx получение ответа от бекенда

Директива proxy_buffering разрешает или запрещает использовать буферизацию ответов проксируемого сервера. А собственно где сохраняется ответ от бекенда, какую переменную присвоивается этот ответ и как взять буфер этого ответа ?

 ,

neutrino
()

Nginx получения буфера html контента

Добрый день. Предо мной стоит задача получения и кэширования статического контента прямо в Redis. Для взаимодействия с Redis -ом использую nginx модуль http_redis_module (http://wiki.nginx.org/HttpRedis). Как известно nginx написан на чистом С. Поковырялся в исходниках но никак не смог найти то место где получается html контент сайта. Как я могу положить в буфер этот чертов html контент ? Спасибо.

 , , ,

neutrino
()

RTSP сервер на C++

Есть задача написать rtsp сервер на C++. Какие готовые библиотеки и АПИ есть для этого ?.

 rtsp server c++ linux

neutrino
()

может ли поток не завершатся после pthread_exit(0) ?

может ли поток не завершатся после pthread_exit(0) ?

neutrino
()

Eventloop exec() в posix thread -ax ?

можно ли вызывать qt-шный exec() в своем posix потоке ?

neutrino
()

Подключение новой директории /home.......The disk drive for /home is not ready yet or not preset

Моя директория /home случайно пропал. Появляется ошибка «The disk drive for /home is not ready yet or not preset.Как подключить новую директорию /home ?

neutrino
()

gdb: display memory address

Как в gdb делать так чтобы dump памяти постоянно отображалось как в ollydbg. Только не пишите x/30x ...В Ютюбе один ролик есть там интерфейс gdb как у softice-а с верху memory dump, потом идет контекст регистров и потом листинг. постоянное отображение регистров я знаю делается так -tui reg general а вот memory -dump....

neutrino
()

Qt + posix threads, непредсказуемое поведение программы

Привет. Пишу простой мессенджер на c++/Qt, POSIX threads, POSIX sockets, платформа Linux Ubuntu 12.04. Вопрос... Можно ли передать указатель основного потока Qt программы в posix thread, вот листинг

#include <QApplication>
#include "MainWindow.hpp"
#include "pthread.h"
#include <signal.h>
#include <QEvent>
#include <QObject>
#include "MessageEvent.hpp"


//pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;


void handler_sigsegv(int signum)
{
    QMessageBox m_msg;
    m_msg.warning(0,"Warning", "SIGSEGV Error!","POSIX Signal");

    signal(signum, SIG_DFL);
    exit(3);
}

void* users(void* pt)
{    
  MainWindow* temp = (MainWindow*)pt;// переданный потоку параметр-указатель класса главного окна

   while(1)
   {
            if(1 == temp->get_login_status())// проверяем залогинился ли юзер
            { 
                QString string = temp->_receving();// ждем и получаем входящее сообщение
                if(NULL != string)
                {
                    // функция temp->getHistoryObj() возвращает указатель на QTextEdit
                    QMetaObject::invokeMethod(temp->getHistoryObj(), "insertPlainText"  ,Q_ARG(QString, string));// выводим в QTextEdit
                    QMetaObject::invokeMethod(temp->getHistoryObj(), "insertPlainText",Q_ARG(QString, "\n"));                   
                }                
            }
   }

}
int main(int argc, char** argv)
{
    signal(SIGPIPE, SIG_IGN);// сигнал sigpipe
    QApplication app(argc, argv);
    signal(SIGSEGV, handler_sigsegv);
    MainWindow* m = new MainWindow; //указатель на класс главного окна

    pthread_t pt;
    m->show();
    int res = pthread_create(&pt, NULL, &users, (void*)m); // создаем поток для получения входящих сообщений

    return app.exec();
}
Проблема в том что, что иногда прогрмма ведет себя непредсказуемо, не часто но бывает что сервер отправляет сообщение а тут клиент падает хотя минуты назад тот же клиент сообщение норм получало....Debuger -ом проверяю оказывается функция сокета recv возвращает -1, хотя минуты назад снова было все норм recv возвращала valid count байтов. тут у меня указатель класса главного окна MainWindow* m передается в posix поток. В потоке жду входящего сообщения. Если сообщение пришло то функция _receving() возвращает входящее сообщение ввиде строки QString. А методами QMetaObject::invokeMethod строка выводится в QTextEdit. Может не так-уж корректна передача указателя главного потока (main) Qt класса в posix поток void* users(void* pt) ?

neutrino
()

Проблемы с MakeFile

Изучаю make-файлы в Linux. Есть такая проблема. Проект разбит по категориям:

makefile recursion---->TopMakeFile(файл),  src
src----> src1,  src2,  mkf
src1----> sources, makefile(файл) 
src2----> sources, makefile(файл) 
mkf---->compile.mk(файл)
То есть и у src1 и у src2 есть свой локальные makefile, где во время выполнения make file создаются в папках src1и src2 еще 2 папки bin и obj, то есть получается такая структира src1----> sources, makefile(файл), bin, obj и src2----> sources, makefile(файл), bin, obj. Соответственно объектные файлы в obj, a бинарнки в bin. Файл compile.mk должен из исходников .cpp и .hpp создать объектные файлы и положить в obj папку соответствующего src..(1 || 2). Вот листинги

src1---> makefile

include ../mkf/compile.mk

OBJ:=$(wildcard ./obj/*.obj)

COMPILEMK:=../mkf/compile.mk

./bin/main : $(OBJ) begin
        g++ -o $@ $(OBJ)
begin :
         mkdir -p obj bin 

$(OBJ): compile.mk
        make -C $(COMPILEMK)
Листинг 1

у Листинга 2 (src2) тоже аналогичный код... нет смысла написать. Теперь в Листинге 3 код файла compile.mk:

SOURCES:=$(wildcard ./../src1/sources/*.cpp)
OBJECTS:=$(patsubst ./../src1/sources/%.cpp, ./../src1/obj/%.o, $(SOURCES))
DEPENDS:=$(patsubst ./../src1/sources/%.cpp, ./../src1/obj/%.dep, $(SOURCES))

./../src1/obj/%.o : ./../src1/sources/%.cpp ./../src1/headers/%.hpp
        g++ -c $< -o ./../src1/obj/%.cpp 

./../src1/obj/%.dep : ./../src1/sources/%.cpp
        g++ -MM $< -MT "$@ $(patsubst ./../src1/obj/%.dep, ./../src1/obj/%.o, $@)" -o $@

-include $(DEPENDS)

Листинг 3

В листинге 4 приведен код TopMakeFile

SOURCES=./src1 ./src2
MAKE=make
all: 
        for dir in $(SOURCES); do $(MAKE) -C $$dir; done

Листинг 4

Теперь когда отдельно вызываю из папок src1, src2 свои локлаьные маке файлы (для проверки работоспособности) появляются ошибки

grigorii@grigorii-System:~/makefile recursion/src/src1$ make
g++ -MM ../src1/sources/main.cpp -MT "../src1/obj/main.dep ../src1/obj/main.dep" -o ../src1/obj/main.dep
cc1plus: fatal error: opening output file ../src1/obj/main.dep: No such file or directory
compilation terminated.
g++ -MM ../src1/sources/add.cpp -MT "../src1/obj/add.dep ../src1/obj/add.dep" -o ../src1/obj/add.dep
cc1plus: fatal error: opening output file ../src1/obj/add.dep: No such file or directory
compilation terminated.
mkdir -p obj bin
g++ -o bin/main 
g++: fatal error: no input files
compilation terminated.
make: *** [bin/main] Error 4

Думаю не смысла вызывать TopMakeFile, потому что в локальных есть ошибки. Как поправить коды файлов и что это за ошибки. Спасибо

neutrino
()

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