LINUX.ORG.RU

Сообщения php-coder

 

[SHELL] Проверить, что переменная это число

Здравствуйте!

Есть следующий кусок кода:

elif ! printf '%s\n' "$1" | grep '^[[:digit:]]\+$'; then
echo "Wrong number of test ($1). Should be a digit! Skipped." >&2
shift

Но при запуске в стандартном sh на SunOS вижу ругань:

./run_test.sh: !: not found

Как бы этот код сделать более портабельным?

(Пробовал grep -v, пробовал менять регулярное выражение на '^[^[:digit:]]\+$', но пока ничего не вышло..)

Заранее спасибо!

 

php-coder
()

Doxygen: string vs std::string

Здравствуйте!

Как бы объяснить Doxygen'у, что string в файле реализации и std::string в хедере это один и тот же тип?

Искал в гугле, но безрезуальтатно. Нашел опцию BUILTIN_STL_SUPPORT, но она совсем другое включает.

>>>

php-coder
()

test.sh: bad substitution

Здравствуйте!

При попытке запустить скрипт на SunOS 5.10 в стандартном sh заткнулся на одной ошибке. Вот упрощенный вариант:

#!/bin/sh
NO=
if [ ${#1} -le 2 ]; then
   NO="`printf '%03d\n' $1`"
else
   NO="$1"
fi
echo $NO

При попытке запустить:

$ ./test.sh
./test.sh: bad substitution

$ sh -x ./test.sh
NO=
./test.sh: bad substitution

Как это исправить?

Пробовал выяснять длинну строки с помощью expr, но тоже не получилось.

Заранее спасибо!

>>>

php-coder
()

Условный вызов AC_CHECK_HEADER

Здравствуйте!

Хочу сделать следующее: в configure скрипте, если указана опция --enable-boost проверить на присутствие хедер boost/scoped_array.hpp (а в будущем и некоторые другие) и хотелось бы, чтобы если его нет, то configure "падал".

Для начала, чтобы просто искалось:

AC_MSG_CHECKING(whether we are using boost)
AC_ARG_ENABLE(boost,
    AS_HELP_STRING([--enable-boost], [use boost library during build]),
    [enable_boost=yes],
    [enable_boost=no])
AC_MSG_RESULT($enable_boost)
if test "$enable_boost" = "yes"; then
    # TODO: configure should fails if one of needed headers not found
    AC_CHECK_HEADER([boost/scoped_array.hpp])
    AC_DEFINE([ENABLE_BOOST], [], [use boost library])
fi

С --enable-boost всё работает, ищется, а вот без опций configure не проходит:

checking whether we are using boost... no
configure: error: conditional "am__fastdepCC" was never defined.
Usually this means the macro was only invoked conditionally.

Как бы победить? Или это невозможно и хедеры нужно чекать безусловно?

В гугле искал, но там всё больше находились configure скрипты, которые выдавали эту ошибку.

Заранее спасибо за помощь.

>>>

php-coder
()

[C] Как получить статус завершения треда

Здравствуйте!

Не могу понять как правильно вернуть из треда его статус завешения и как этот статус получить в main().

pthread_exit() или return из треда должны возвращать указатель на void. Но при этом переменная не может быть локальной, в итоге остаётся либо возвращать адрес глобальной переменной, либо выделять память на куче и возращать адрес на неё.

Второе очень странно и не логично, потому что городить вызовы malloc(), и потом free() в главном потоке, только для того чтобы только получить код завершения это overhead.

А если возвращать указатель на глобальную переменную, то какой смысл в этих pthread_exit() если можно просто установить глобальную переменную в нужнозе значение и всё?

Как-то нелогично IMHO сделано. Объясните, пожалуйста.

P.S. Был в гугле со словами "pthread_exit() get status"

>>>

 

php-coder
()

Что значит warning: creating a DT_TEXTREL in a shared object?

Здравствуйте!

При сборке разделяемой библиотеки вижу предупреждение:

gcc -Wall -W -g -c -o src/drop/libkatrin-drop.o src/drop/libkatrin-drop.c -I./src
gcc -Wall -W -g -c -o src/utils/utils.o src/utils/utils.c -I./src
gcc -Wall -W -g -c -o src/conf/conf.o src/conf/conf.c -I./src
gcc -Wall -W -g -shared -fPIC -Wl,-export-dynamic -o ./build/libkatrin-drop.so src/drop/libkatrin-drop.o src/utils/utils.o src/conf/conf.o
/usr/bin/ld: warning: creating a DT_TEXTREL in a shared object.

Что означает это предупреждение и как его побороть? (В гугле искал, но ответа не нашел.)

Надеюсь на вашу помощь. Заранее благодарю!
php-coder
()

Запуск иксовой программы по SSH

Здравствуйте!

Устал уже читать пользоваться багзиллой в links'е и посему очень бы хотел получить ответ на следующий вопрос: возможно ли запустить какой-нибудь графический браузер у себя на машине по SSH, причем между моим компом и тем, на который я хожу есть ещё один промежуточный и на него я тоже по SSH. Короче говоря, я со своей машины A иду по SSH на B, а потом с B опять же по SSH на С. И вот с машины C я и хотел бы запустить браузер.

Как это сделать? Пожалуйста, подскажите.

php-coder
()

Помогите написать правило для procmail

Здравствуйте!

Хочу сделать, чтоб procmail сбрасывал в отдельный файл хедеры от всех писем, поискал в инете, почитал доку, пытаюсь сделать так:

:0ch
| >> testmail

Но в файле testmail никаких хедеров не появляется. Подскажите, что я сдела не так?

Спасибо.

php-coder
()

Создание функциональных тестов

Здравствуйте!

Задумался над идеей добавления тестов для своей программы. Посмотрел на DejaGNU, день убил, но так и не смог разобраться, в частности с Expect'ом. Решил написать что-нить простенькое под себя. Пишу на шелле. Банально сохраняю вывод программы в файл и сравниваю с эталонным.

Хотелось бы услышать советов/предложений о том, как лучше писать тесты, на чем. Я не против использования сторонней программы, но главный критерий -- простота, чтобы я быстро смог разобраться и в т.ч. понимал, что она делает.

Спасибо.

php-coder
()

Реально ли использовать клавишу Fn в IBM ThinkPad?

Имею ноутбук IBM ThinkPad R50e.

ООЧЕНЬ не хватает клавиши Win, на которую у меня были навешаны почти все хоткеи. Оказался как без рук =(

Интересует вопрос реально ли использовать клавишу Fn как Win ? Т.е. чтобы при нажатии Fn+a открывался aterm? Проглядел файлы из пакета к tpb и так понял, что это невозможно, но не хочу в это верить :-(

Если невозможно, то посоветуйте на что можно перевешать хоткеи?

Спасибо.

php-coder
()

Помогите с выбором ноутбука

Планирую на этой неделе купить себе ноутбук. Был бы рад услышать советы от тех, кто уже имеет ноут. Сразу скажу, что хотелось бы уложиться в ~28 000 рублей, лучше меньше :)

Играть на нём не собираюсь. Важно, чтобы не было проблем с Линуксом, так как это будет единственная ОСь на нём. Желательно винт на гиг 80 и оперативки 512 Мб :) И ещё бы DVD чтобы записывать умел. Вроде больше и не надо мне :)

Возможно ли взять ноут, чтобы и хороший и за такую сумму?

php-coder
()

getenv() vs getpwuid()

Требуется из программы получить значение $HOME.

Нахожусь в раздумьях, как это лучше и оптимальнее сделать: использовать переменную окружения, с помощью getenv() или же считать из /etc/passwd, с помощью getpwuid(geteuid()) ?

Хотел узнать у вас, разработчики, какой путь использовали бы вы? Интересуют два аспекта: наибольшая безопасность и скорость. Мне почему-то кажется, что вариант с getenv() быстрее, а читать из /etc/passwd более безопасно.

Что скажете?

php-coder
()

Цвета в irssi

Снёс Xchat и поставил irssi. Столкнулся с двумя пока проблемами:

- когда кто-то на канале пишет /me, то его сообщение recode не перекодирует. Known bug ? Может патч кто видел?

- сверху (тема) и снизу панель синим цветом. Мне очень не нравится и бьёт по глазам. Пожалуйста, подскажите как это изменить. Что-то в доке на сайте не понял как это сделать и можно ли...

И ещё как узнавать что тебе что-то сказали на другом канале? Как канал в автозагрузку добавить?

php-coder
()

valgrind: как его использовать-то?

Что-то не могу разобраться как с этим зверем-то работать? В частности, не ясен его вывод и где он ошибки углядел. Вот, к примеру:

==11361== 125 errors in context 25 of 51:
==11361== Conditional jump or move depends on uninitialised value(s)
==11361==    at 0x80D1A9D: MenuCreator::createWindowMenuItem(std::string const&, std::string const&, FbTk::Menu&) (basic_string.h:2099)
==11361==    by 0x80D65ED: MenuCreator::createMenuType(std::string const&, int) (new_allocator.h:62)
==11361==    by 0x807DE4E: BScreen::initMenus() (new_allocator.h:62)
==11361==    by 0x806A608: Fluxbox::initScreen(int) (fluxbox.cc:464)
==11361==    by 0x806D3D2: Fluxbox::Fluxbox(int, char**, char const*, char const*) (stl_vector.h:462)
==11361==    by 0x80787AB: main (basic_string.h:1456)

Что бы это могло значить? Есть где объяснение?

Использую слегка старую версию -- 2.4.0, но скоро новую попробую. Запускал с ключами -v --leak-check=full
php-coder
()

Помогите найти логотип Линукса

Не подскажет ли кто где найти в сети эмблемку с надписью Линукс в стиле эмлбемы хакеров ? В этом стиле:

http://www.catb.org/hacker-emblem/hacker.png
http://www.fluxbox.org/download/propaganda/web-buttons/mini-fluxbox4.png

Ну и размер, соответственно 15x80

В гугле искал :)

php-coder
()

Помогите юному переводчику ;)

Появилось с чего-то вдруг желание перевести пару статей, посвященных OpenBSD. Выложил их пока здесь в удобной для редактирования (перевод/оригинал) форме:

- http://www.freesource.info/wiki/PhpCoder/drafts/QuickStepsToAnOpenBSDDesktop
- http://www.freesource.info/wiki/PhpCoder/drafts/RunningOpenOfficeOnOpenBSD

Буду благодарен, если кто-то поможет в улучшении перевода, т.к. я не переводчик, английский у меня *очень* плохой, но тем не менее есть много желания :) Особенно интересует перевод трудных участков, которые я там выделил подчеркиванием и при наведении подсказкой...

И пожалуйста: не ругайте OpenBSD и не ругайтесь. Также я считаю, что для новичков не знающих английский плохой перевод лучше нежели хороший английский оригинал ;)

Спасибо за внимание!

php-coder
()

Помогите подружить mpd + mpc

Решил попробовать эту связку, так как достал регулярно падающий xmms.
Поставил, почитал маны, написал конфиг. Но не работает что-то.

А именно:

[c0der@mycomp ~]$ mpd
setFsCharset: fs charset is: CP1251
[c0der@mycomp ~]$ export MPD_HOST=127.0.0.1
[c0der@mycomp ~]$ export MPD_PORT=6600
[c0der@mycomp ~]$ mpc clear
volume:100%   repeat: off   random: on 
[c0der@mycomp ~]$ mpc add ""
[c0der@mycomp ~]$ mpc play
volume:100%   repeat: off   random: on 
[c0der@mycomp ~]$ mpc
volume:100%   repeat: off   random: on 
[c0der@mycomp ~]$

Как я понял, mpc без параметров должна также вывести и название
проигрываемой композиции, а у меня не выводит :( И не играет ничего :(

Вот конфиг mpd:

[c0der@mycomp ~]$ cat .mpdconf G -v ^$
music_directory         "/mnt/music/Европа+"
music_directory         "/mnt/music/Русское"
music_directory         "/mnt/music/НАШЕ"
playlist_directory      "~/.mpd/playlists"
log_file                        "~/.mpd/mpd.log"
log_level                       "verbose"
error_file                      "~/.mpd/error.log"
state_file                      "~/.mpd/state.log"
port                            "6600"
bind_to_address         "127.0.0.1"
mixer_type                      "alsa"
mixer_device            "default"
mixer_control           "PCM"
ao_driver                       "alsa09"
ao_driver_options       "dev=hw:0,0;buf_size=4096"

Буду благодарен за помощь!
php-coder
()

Удаленное выключение Windows: не получается

Пытаюсь действовать как посоветовали раньше (http://www.linux.org.ru/jump-message.jsp?msgid=1101348).
Но ни один из советов не принес положительных результатов:

[c0der@mycomp ~]$ net rpc shutdown -I 192.168.0.2
Password:
[2005/10/11 14:57:18, 0] utils/net_rpc.c:rpc_init_shutdown_internals(4216)
  Shutdown of remote machine failed!
[2005/10/11 14:57:18, 0] utils/net_rpc.c:rpc_reg_shutdown_internals(4286)
  Shutdown of remote machine failed!
[c1der@mycomp ~]$

[c0der@mycomp ~]$ rpcclient -c shutdown 192.168.0.2
Password:
Invalid command
[c0der@mycomp ~]$ rpcclient -c shutdowninit 192.168.0.2
Password:
result was NT code 0x00000005
[c0der@mycomp ~]$
php-coder
()

Удаленное выключение Windows

Подскажите, пожалуйста, как можно выключить Windows удаленно, при этом находясь в Linux? Может быть есть какая-нибудь специальная программа для этого? Искал в гугле, но безуспешно :( Пытался под Wine'ом запустить виндовый shutdown.exe, не хочет:

[c0der@mycomp ~]$ wine shutdown -s -m \\tanya -t 30                        9:56
Warning: could not find DOS drive for current working directory '/home/coder', starting in the Windows directory.
fixme:advapi:InitiateSystemShutdownExW L"\\tanya" (null) 30 0 0 -2147483393

Кто еще что посоветует?
php-coder
()

Сколько времени нужно, чтобы освоить FreeBSD?

Меня знакомый озадачил двумя вопросами, касающимися FreeBSD и переезда на нее после многолетнего использования Windows. Поскольку я сам Фрю не использовал, то решил спросить мнение общественности, т.е. вас.

Интересует три вопроса:

1) сколько времени нужно, чтобы "самому с нуля понять ФриБСД до уровня адвансед"? Причем насколько отличается время освоения полного чайника от бывшего админа Винды?

2) сколько времени нужно, чтобы "установить ФриБСД со всеми наворотами: мыло, веб, базы данных, фаервол, крон, бэкапы и т.д."

3) "проще её понимать по их сайту или р.язычным ресурсам или проще можно достать одну большую толстую книгу аля ФриБСД КукБук"?

Буду благодарен за любые советы...

php-coder
()

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