Программирование

Изображение пользователя alexu.

Ответы на ЧаВо по программированию в Bash

Tags: •  •  • 

Очень классная подборка вопросов и ответов по программированию в Bash. Не нужно долго ковыряться в Advanced Bash Programming Guide ;)

http://wooledge.org/mywiki/BashFaq

Изображение пользователя ramok.

Вывод отладочной информации в скриптах shell

Tags: •  •  • 

При отладке скрпитов sh часто очень удобно видеть какие команда выполняется в результате работы скрипта. Включить вывод отладочной информации в скрипте можно командой:

set -x
Если скрипт большой и хочется выводить отладочную информацию только для проблемного куска кода, то отключить вывод можно командой:
set +x

Изображение пользователя ramok.

Вывод пользовательских структур данных с помощью printf

Tags: •  •  •  • 

Практически любой начинающий программист на C++ знает о такой возможности стандартных классов ввода/вывода C++ cin/cout как вывод/вывод пользовательских типов данных. Например если у вас есть ваш класс Widget то можно релизовать красивый вывод данных объекта этого класса:

Widget mywidget("mywidget");
cout << mywidget;
Откройте любой учебник по С++ на главе по перегрузке операторов и там доходчиво все объясняют.

Но далеко не каждый профессиональный программист знает о примерно такой же возможности в C. В GNU libc имеется API для регистрации пользовательских форматов данных для printf.

В документации glibc описана эта замечательная возможность . Там же дан толковый пример .

Обзор ncurses, библиотеки для консольного ввода-вывода.

В документе описаны такие жизненно необходимые функции библиотеки консольного ввода/вывода ncurses как очистка экрана, перемещение курсора, изменение цветов фона и символов, отключение вывода символов при вводе и многое другое. Большая часть была взята из официальной документации остальная часть из личного опыта использования. Надеюсь многим начинающим программистам под Linux и не только будет полезна.

Подробнее.

Что такое Maketext, почему устарел gettext, и как я использую это в perl

Tags: • 

Есть замечательная статья

http://search.cpan.org/~petdance/Locale-Maketext-1.10/lib/Locale/Maketex...

которая знакомит нас с недостатками gettext, и возможностями maketext.

В perl я пользуюсь Locale::Maketext и очень доволен :)

p.s.: навеяно предыдущим материалом про php :)

p.p.s.: а почему в программировании только php? ;)

Изображение пользователя ramok.

Алгоритм подсчета кол-ва бит в числе

Tags: •  •  •  •  • 

смотрим функцию bit_set_cnt()
работает, но сам алгоримт неочевиден Ж:-)

/* подсчет кол-ва бит в числе */
#include <stdio.h>

int bit_set_cnt(unsigned long);

int main()
{
    unsigned long i = 0xff;

    while(i--)
        printf ("i = %#x, set bit count = %d\n", i, bit_set_cnt(i));

    return 0;
}

int bit_set_cnt(unsigned long i)
{
    int cnt = 0;
    while (i)
    {
       i &= i - 1;
       cnt++;
    }
    return cnt;
}

как посчитать сумму чисел в выводе программы

Tags: •  •  •  •  • 

довольно часто возникает необходимость посчитать сумму чисел в выводе какой-либо программы.
например, если сделать grep pppd /var/log/daemon.s | grep -Po '(?&lt;=received )\d+', то можно получить что-то вроде

994
3301302
259550
4825
91793
103160
171276
58533
2563

это число байт, принятых по модему за несколько последних сессий. просуммировать такой вывод очень просто. достаточно создать скрипт, содержащий всего две строчки:
#!/bin/sh
awk '{print $1}' | grep -Po '^\d+([.,]\d+)?' | sed -n '{s/$/+/;s/,/./;H;}; ${g;s/\n//g;s/+$//g;p}' | bc

назвать его, скажем, sum, а потом сделать

RSS-материал