LINUX.ORG.RU

Сообщения cruz7

 

nested спинлоки

Форум — Development

Гуглил, читал linux/Documentation/ но сходу не нашел, плохо или нет применять nested спинлоки в ядерном коде применительно к ядру 2.4.20 (саппорт старой железки). Приведу пример:

spinlock_t my_lock;

int f1()
{
unsigned long flags;

spin_lock_irqsave(&my_lock, flags);
f2();
spin_unlock_irqrestore(&my_lock, flags);
}

int f2()
{
unsigned long flags;

spin_lock_irqsave(&my_lock, flags);
/* do something */
spin_unlock_irqrestore(&my_lock, flags);
}

Правильно или нет при таком раскладе ставить спинлоки в f2(), раз уж она вызывается из f1()?

Спасибо!

cruz7
()

покритикуйте функцию

Форум — Development

Понадобилась небольшая функция печати даты, вот компиляемый кусок кода (gcc -std=c99 -pedantic -W -Wall -Wextra). Покритикуйте plz реализацию shotime().

Спасибо.

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>

static int
showtime(char buf[], const size_t len)
{
time_t ticks;

ticks = time(NULL);
return (snprintf(buf, len, "%.24s\n", ctime(&ticks)));
}

int main(void)
{
char buf[30];

memset(buf, '\0', sizeof buf);
showtime(buf, sizeof buf);
printf("%s\n", buf);

return 0;
}

cruz7
()

обертки для socket(), connect() и пр.

Форум — Development

Приветствую,

в своей знаменитой книге "UNIX Network Programming" Стивенс использует свою маленькую библиотеку функций-оберток вокруг стандартных "сетевых" рутин - socket, bind и т.д.

У меня такого плана вопрос - в реальной жизни есть ли смысл применения таких врапперов, или они мало помогают в написании/отладке кода и автор сделал их скорее для экономии печатного места? :)

И отсюда вытекает второй вопрос - насколько подробно нужно обрабатывать errno-коды сетевых функций (как я понимаю, это также одна из причина написания врапперов?).

Спасибо!

cruz7
()

IGMP fast-leave

Форум — Admin

Друзья, нарыл в гугле про fast-leave, но никак не могу врубиться как же оно все-таки работает. В rfc2236 есть всего одно упоминание об этом.

Может быть кто-нибудь сумеет мне, неразумному, втолковать про сей процесс?

Будет премного благодарен!

cruz7
()

проблема с getopt()

Форум — Development

никак не получается побороть getopt() - нужно, чтобы при отсутствии параметров выводил справку. Что я делаю не так?

Снимите с ручника. Заранее благодарю!

[code] while ((c = getopt(argc, argv, "hvi:g:c:t:")) != EOF) { switch (c) { case 'i': break; case 'g': break; case 'c': break; case 't': break; case 'h': usage(); break; case 'v': break; default: usage(); break; } }; [/code]

cruz7
()

IGMP пакет

Форум — Development

Уважаемые!
Мне нужно написать простой код под линуксом (ядро 2.6.18 если принципиально) для отправки в сеть сгенерированного IGMP сообщения. В целом идея ясна: создаю raw socket, например такой socket(PF_INET, SOCK_RAW, IPPROTO_IGMP), заполняю структура igmp пакета (из /usr/include/netinet/igmp.h), и отправляю посредством sendto.

Но возникает вопрос, нужно ли мне самому также генерировать мультикаст ethernet адрес, как это определено стандартом и строить самому эзернет фрейм на raw-сокете или этим займется ядро?

Спасибо.

cruz7
()

emacs: split'ить окно при окрытии нового файла

Форум — Development

Подскажите, есть ли аналог vim-овского 'split', когда открывается новый файл, но при это текущее окно расщепляется пополам? Или в emacs'e принято иначе? Если так, то проясните plz.

Спасибо.

cruz7
()

emacs/vim - background, foregorund, шрифты

Форум — Development

Приветствую.

Думаю этот вопрос больше в девелоперской ветке имеет смысл обсудить.

Какой фон, цвет символов, шрифты наиболее оптимальны для данных приложений при работе с ними в течение всего дня (главным образом кодинг). Всегда считал, что черный фон наиболее безболезненный для глаз, недавно прочитал что серый фон лучше и мягче. Из шрифтов наверное terminus?

Хотелось бы услышать разные мнения. Что посоветуете? Спасибо.

cruz7
()

emacs/vim - background, foregorund, шрифты

Форум — Desktop

Приветствую.
Какой фон, цвет символов, шрифты наиболее оптимальны для данных приложений при работе с ними в течение всего дня (кодинг, чтение/написание писем). Всегда считал, что черный фон наиболее безболезненный для глаз, недавно прочитал что серый фон лучше и мягче.
Из шрифтов наверное terminus.

Что посоветуете?
Спасибо.

cruz7
()

setsockopt

Форум — Development

Возможно, глупый вопрос, но сам не могу допереть. Вот такое встретил в чужом коде:

#define SETSOCKOPT(optid, varptr, vartype, qty) \
{ \
unsigned int ret; \
int sockfd; \
if ((sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) == -1) { \
return -1; \
} \
if ((ret=setsockopt(sockfd, IPPROTO_IP, optid, (void *)varptr, sizeof(vartype)*qty)) != 0) { \
close(sockfd); \
return ret; \
} \
close(sockfd); \
}

Возникает вопрос - какой смысл выставлять опции на сокете, который потом закрывается? Более того, везде где вызывается этот макрос, 'sockefd' никак не используется.

Помогите сняться с ручника, заранее огромное спасибо!

cruz7
()

emacs: настройка Gnus'a

Форум — Development

Приветствую,

настроил Gnus на чтение NNTP, вроде все нормально, с кнопками освоился. Нe устраивает только вот такое поведение - например, выбрал группу от своего usenet-поставщика, вхожу, gnus предлагает прочитать заголовки, и если группа очень жирная (например, comp.lang.c), то это занимает достаточно много времени. Можно ли как-то сказать gnus'у, что при открытиии новой группы загружать заголовки только свежих статей, и не более, н-р 100?

Как решаете такие "проблемы" (наверное только у меня, чайника, это проблемы :-) ) вы - уважаемые Emacs-гуру?

Более того, gnus сохраняет эти заголовки (видимо это кеш?) в /home/user/News/agent/nntp/my.news.server/comp/lang/c и это занимает немало места. Обязатально ли хранить этот кеш?

Спасибо.

cruz7
()

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