В Advanced Linux Programming есть раздел посвещённый проблемам тестирования динамической памяти в программах на С.
Из этих методов можно отметить:
mtrace
ccmalloc library
electric fence library
Как сказано там же, все эти методы не покрывают всего спектра проблем.
И ещё - их нельзя совмещать.
Есть ли более мощные средства?
Особенно с заточкой под C++, а не под C.
Где можно почитать о низкоуровневых вопросах связанных с С++
Т.е. по работе с памятью, таблицей виртуальных функций и т. д.
Имеется ввиду нечто среднее м/у технической документацией на компилятор и обычной книгой по C++.
Обновил себе ХФрее с 4.2 до 4.5
Теперь в Х-ах у меня по дефолту русский и на английский я переключиться не могу.
В конфиге всё по-старому - ничего не менял. Неужели нет совместимости?!
В чём м.б. проблема???
Есть две даты
begin_dt
end_dt
Нужно заполнить таблицу days (имеет один столбец date) днями
из диапазона begin_dt...end_dt
Т.е. например
01.01.2005
02.01.2005
...
14.01.2005
15.01.2005
Как это сделать на SQL (на стандартном,без расширений)?
Есть ли что-то типа doxygen для perl'a
Желательно со следующими характеристиками
1) HTML,PDF,LATEX
2) Поддержка русского языка
3) Возможность рисования графов и диаграмм ( dot )
Как средствами SQL получить разность в днях м/у двумя датами в
формате dd.mm.yyyy
Вообще-то задача решается на M$ Access (не я выбирал СУБД :))
и если кто знает как задачку проще решить на Access - поделитесь
этим великим дао!
Я уже з@еб...ся! Час мучаюсь - не работает ни фига.
Дока у M$ - полный отстой.
Так как есть известная бага с mv (и соответственно с rename в Perl)
файлов м/у разными винчестерами, то хочется реальзовать перемещение
через cp + rm
Вот код:
....
....
rename "$file1", "$file2" or do
{
logg ("Can't move file $file1 using rename : '$!'");
logg ("Trying move file $file1 with cp & rm ...");
`cp $file1 $file2`;
if ( $@ )
{
logg("Error while copying file $file1 : $@");
}
else
{
`rm $file1`;
logg("Can't remove file $file1 : $@") if $@;
}
}
....
....
Правильно ли я обрабатываю ошибки?
Есть принтер HP LaserJet 4 Plus
На серваке где он подключен заживлён lpd + samba
С виндовых машин при предварительной установке драйвера для этого
принтера всё отлично!
А вот в линуксе при печати файла через lpr на бумаге какой-то бред!
Lpr естественно не знает моего принтера и ему наверное нужно подавать
файл со специальной предобработкой!
Как это реализуется? Где почитать?
Почему в winefile при двойном щелчке на pdf документе
Adobe Acrobat открывает не нужный файл, а файл с именем %1
Понятно почему - в реестре на тип документа pdf прописан action
"С:\Abobe\Reader\Acroread.exe" "%1"
Почему шаблон %1 не заменяется реальным именем файла???
df -i показывает, что на рутовой партиции 1 свободный inod!!!
Как узнать кол-во инодов, которое занимает конкретная директория?
Или кол-во файлов в директории!
Есть 3 девайса Cisco
Они все шлют датаграммы на хост HOST в порт PORT.
На этом хосте стоит демон, который читает датаграмы из порта PORT и
пишет их в порты PORT_A и PORT_B.
Вроде всё классно, НО когда читаешь датаграмы из порта PART_A или
PORT_B и через unpack_sockaddr_in получаешь IP источника, то
естественно получаешь 127.0.0.1, а не IP девайса Cisco.
Как в подобной транзитной схеме из демона отдавать в PORT_A и PORT_B
адрес пришедший из PORT, а не localhost (как по умолчанию)???
Надо обновить glibc.
Есть ли у кого опыт, доки, howto'ки по этой теме.
Знаю, что это большие проблемы, но есть одно НО.
Новая версия glibc нужна только для ОДНОЙ (хотя и очень важной
программы, распространяемой только в виде бинарников).
Поэтому, может есть возможность заживить 2 версии glibc на одной
машине.
Делал ли так кто-нибудь?
Это делается просто указанием левого prefix'a в configure glibc
и прописыванием последней строкой /etc/ld.so.conf соответствующего
пути к дире с so'ми???
Или всё сложнее???
Не хочу, чтобы потом все падало в кору по SIGFAULT!!!
В проге для файла $file надо получить каталог в котором
файл находится
Очевидное решение :
$dir = `dirname $file`;
chomp $dir;
Не хочется использовать backticks!
Как реальзовать задачу средствами perl (желательно не через регулярные
выражения)?
Есть программа, которая через fork делает потомков.
Какими средствами можно установить цвет выводимого сообщения?
Нужно что-то вроде этого
sub color_print($)
{
$str = shift;
set_color('red');
print $str;
set_color('black');
}
Вот кусок кода
....
....
my $from = $socket -> recv (my $data, 8192, 0) or do
{
logg "Can't receive datagramm from socket : '$!'";
next;
};
....
....
Вот что написано про recv return value в perlfunc:
Returns the address of the sender if SOCKET's protocol supports this;
returns an empty string otherwise. If there's an error, returns the
undefined value
Правильно ли я использую здесь $! для определения кода ошибки???
Такой вопрос возник у меня т.к. в некоторых случаях моя программа
выдаёт следующее сообщение:
Can't receive datagramm from socket : 'No child processes'
В программе действительно используются fork, используется обработчик
SIGCHLD и.т.д
Но почему я получаю такое сообщение после чтения из сокета???
Вот цикл
while (1)
{
if ( not_valid )
{
logg("Bad");
next;
}
}
А если будет
while (1)
{
&my_sub;
}
И внутри SUB-а делается next
Будет ли сделан переход к следующей итерации цикла?
Подставляется ли тело процедуры в код или используется другой механизм?
Сигнал SIGKILL перехватить и обработать нельзя.
А можно ли как-нибудь организовать запись в лог (на уровне системы, а
не конкретной программы естественно) того, что прибит процесс по 9-му
сигналу.