LINUX.ORG.RU

Сообщения mskmsk1985

 

локальные данные потоков POSIX

Форум — Development

Поясните пожалуйста смысл существования набора функций типа pthread_key_create, pthread_key_delete, pthread_setspecific, pthread_getspecific? Чем не устраивают локальные автоматические переменные в главной функции потока и как с помощью этого скрытно решается проблема глобальной переменной errno?

mskmsk1985
()

pthread атрибуты потока.

Форум — Development

Люди тыкните носом где официально объявлено, что следующее правильно:
pthread_attr_t attr;
void* addr;
size_t size;
pthread_attr_init(&attr);
pthread_attr_getstack(&attr, &addr, &size);
после этого arrd и size равны 0!

Я могу логически объяснить почему адресс равен нулю (назначение адреса стеку происходит при создании потока) но вот почему и размер стека (который фиксирован по умолчанию) возвращается как ноль мне совсем не ясно! Может кто пояснит?

mskmsk1985
()

Чудеса с пространствами имен в С++

Форум — Development

Итак открываем Страуструпа и читаем раздел 7.4.2:
"Функции объявленные в разных областях видимости (не пространствах имен) не являются перегруженными."
Далее в 8.2.1 написано:
"Пространство имен является областью видимости. Обычные правила областей видимости применимы и к пространствам имен."
Отсюда насколько я понимаю следует что:
inf f() {...}
namespace test { inf f() {...} }
это не перегруженные а переопределенные функции и внутри test будет вызываться внутренняя f. Но в
namespace test1 { int f() {...} }
namespace test2 { int f() {...} }
using namespace test1;
using namespace test2;
функции f перегружены и при их вызове нужно явно разрешать неоднозначность.
Ну вроде логично. Теперь берем POSIX Threads и бубенем следующий код (Да с точки зрения работоспособности бред, но не вней фича):
#include <pthread.h>

namespace test {

int pthread_create(pthread_t* thread, const pthread_attr_t* attr, void*(*start_routine)(void*), void* arg)
{
return ::pthread_create(thread, attr, start_routine, arg);

}

int pthread_mutex_lock(pthread_mutex_t* mutex)
{
return ::pthread_mutex_lock(mutex);

}

void f()
{
pthread_t t;
pthread_mutex_t m;

pthread_create(&t, 0, 0, 0);
pthread_mutex_lock(&m);
}

}


int main(int argc, char* argv[])
{
return 0;
}
Пытаемся откомпилить как g++ test.cc и опа на:
test.cc: In function ‘void test::f()’:
test.cc:23: ошибка: вызов перегруженной функции ‘pthread_mutex_lock(pthread_mutex_t*)’ неоднозначен
test.cc:11: замечание: претенденты: int test::pthread_mutex_lock(pthread_mutex_t*)
/usr/include/pthread.h:734: замечание: int pthread_mutex_lock(pthread_mutex_t*)
Я кроме как ВАУ ничего сказать не могу - один вызов значит однозначен а второй почемуто нет. Не я все могу понять из оперы либо оба перегружены либо оба неоднозначны но такое вот я понять не могу! Может я чего непонимаю???

PS: g++ -###:
Используются внутренние спецификации.
Целевая архитектура: x86_64-suse-linux
Параметры конфигурации: ../configure --prefix=/home/kde-devel/kde --infodir=/home/kde-devel/kde/share/info --mandir=/home/kde-devel/kde/share/man --libdir=/home/kde-devel/kde/lib64 --libexecdir=/home/kde-devel/kde/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/home/kde-devel/kde/include/c++/4.4 --enable-ssp --with-slibdir=/home/kde-devel/kde/lib64 --enable-__cxa_atexit --enable-libstdcxx-allocator=new --enable-version-specific-runtime-libs --program-suffix=-4.4 --enable-linux-futex --without-system-libunwind --with-arch-32=i586 --with-tune=core2 --build=x86_64-suse-linux
Модель многопоточности: posix
gcc версия 4.4.1 20090423 (prerelease) (GCC)

mskmsk1985
()

Статические функции члены в С++

Форум — Development

При попытки объявить нечто вроде:
class PThread {
...
static int Pthread_create(pthread_t*, const pthread_attr_t*, void*(*)(void*), void*);
};

получаю такое:
error: cannot declare member function ‘static int pix::PThread::Pthread_create(pthread_t*, const pthread_attr_t*, void* (*)(void*), void*)’ to have static linkage

Компилирую командой:
g++ -fPIC -D_HAS_LINUX_ -D_DEBUG_ -c -o thread.o thread.cc

Вопрос простой и глупый: а посему так незя?

mskmsk1985
()

cmake руководство

Форум — Development

Посоветуйте с чего можно начать?

mskmsk1985
()

Сбока КДЕ из сырцов.

Форум — Development

Какие волшебные слова надо сказать и где чтобы cmake собирало исходники с дополнительными опциями компилятора (-O3 например)?

mskmsk1985
()

Ссылки в С++

Форум — Development

Вопрос: Создание ссылки на временную переменную (и вообще на временную переменную) как-то влияет на время жизни целевого объекта? Например:
int& c = i*20;
результат вычисления i*20 это временная переменная, которая по идее должна исчезать после использования данного выражения (на следующей строке программы грубо говоря этой временной переменной уже быть не должно), создание подобной ссылки продлевает жизнь такой переменной превращая её в реальный lvalue или нет?

mskmsk1985
()

C++ неепонятки

Форум — Development

Знатоки поясните пожалуйста почему &(++x) правильно так как lvalue а &(x++) нет так как не lvalue. Вот этих lvalue Я как выяснилось до конца пока не понимаю...?!

mskmsk1985
()

Аосоветуйте NFS клиент под хрюшу

Форум — Admin

Ксли такие вообще есть... работающие.

mskmsk1985
()

XEN vs KVM?

Форум — Admin

Мнения специалистов - что лучше? (Для работы оффтопа в сети... специфика фирмы что кое-где все еще нужен оффтоп...) И как бороться с тормознутостью мышки :)

mskmsk1985
()

BTRFS vs ZFS?

Форум — Admin

Для затравки - ZFS детище Sun сегодня уже работает (личный опыт полугодового использования в FreeBSD 24/7 полет нормальный при средних нагрузках). BTRFS детище Oracle сам не пробывал, говорят работает. По фичам у обоих есть плюсы и есть минусы. Что лучше пока спорно. Теперь главный прикол - Oracle покупает Sun => Oracle владеет и ZFS и BTRFS. Мнения по поводу перспектив развития обоих ФС?

mskmsk1985
()

Xen + sdl?

Форум — Admin

В XEN запустил винды с параметром sdl=1 проблема одна - постоянно мигает верхний левый угол экрана, кто знает как лечить?

mskmsk1985
()

Проброс пакеьлв в linux?

Форум — Admin

Есть комп с двумя интерфейсами, как в linux организовать проброс пакетов с одного интерфейса на другой. Что-то типа аналога бсдшного gateway_enable="YES" должно ведь быть?

mskmsk1985
()

сеть в xen?

Форум — Admin

Помогите разобраться, а то окончательно запутали меня! Есть сервер Xen + openSuse 11.1 два сетевых интерфейса - eth0 (проводной) и wlan0 (wifi от интел). Проводной интерфкйс не подключен (провод вытащен). К сети подлючяюсь по wifi. Как сделать так стобы гостевые системы могли выходить во внешнюю сеть через эту вайфайную карту. Знаю что надо сделать мост, но никак не приложу ума как тогда конфигурировать вайфайную карту на доступ во внешнюю сеть: как только её втыкаю в мост соединение отваливается... Yast мосты не конфигурирует, вопшем запутулась моя совсем!

mskmsk1985
()

Использование Xen

Форум — Admin

Решил разобраться с системами виртуализации, начал с Xen. Возник вопрос: есть кака-нибудь приблуда для xen помимо vncviewer? Как можно сделать так что-бы мышек в окне гостевой системы было не две а одна?

mskmsk1985
()

Стантард процесса разработки и документирования ПО?!

Форум — Development

Сразу не бейте сапогами. Интересно узнать 1 - Есть ли стандарт(ы) (что-то типа ГОСТ Р, ЕСПД и пр) официально принятые в России регламентирующие процесс разработки ПО. Причем интеерсна регламентация на уровне как организации самого процесса так и набор (с требованиями к содержанию) документации необходимой в процессе разарботки ПО? 2 - Есть ли вообще какие официально признаные документы регламентирующие процесс разработки ПО? 3 - Есть ли стандарты регламентирующие процесс разработки ПО на уровне международных органзаций (типа ISO)? 4 - Как построен процесс разработки (цикл разработки ПО) в организвциях специализирующихся на разработке ПО. По гуглу искал и некую инфу нашел, но интересно мнение людей профессионально занимающихся разработкой. (Если моно со ссылками). Заранее всем спасибо.

mskmsk1985
()

Шрифты + Java

Форум — Admin

Как настроить шрифты которые используются в Java мордах различных приложений?

mskmsk1985
()

Страуструп C++ ... ошибка или я чего не понимаю?

Форум — Development

В этой книге на 128 - 129 старинице сказано что следующее недопустимо и является ошибкой:
void f(int i)
{
char[i];
}
однако как gcc так и icpc это успешно проглатывает! Я чего не понимаю? И если да то интересно чего?!

mskmsk1985
()

Как посмотреть частоту работы памяти?

Форум — Linux-hardware

Как под linux выяснить в каком режиме работает DDRII как 667 или ка 800 MHz?

mskmsk1985
()

Как отмонтировать nfs том?!

Форум — Admin

История такая: сервер nfs (OpenSUSE 11.1) к нему был подключен клиент FreeBSD 7.1. Подключены они были через wifi (знаю плохо!) и через tcp (тоже знаю еще хуже!). Сервак отвалился вместе с сетью и её не восстановить, а вот примонтированный том остался висеть в выводе mount. При попытке unmount -f /mnt/nfs команда висит и ни на что не реагирует (висит то часов так это 12 что явно выше всех мыслимых таймаутов). Любые обращения к /mnt/nfs и попытки сделать нечто вроде ls в /mnt приводят к таким же результатам. Вопрос: как отмонтировать "битый" том без перезагрузки FreeBSD?

mskmsk1985
()

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