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


alexu аватар

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

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

http://wooledge.org/mywiki/BashFaq

0
Ваша оценка: Ничего
ramok аватар

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

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

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

0
Ваша оценка: Ничего
ramok аватар

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

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

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

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

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

0
Ваша оценка: Ничего

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

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

Подробнее.

0
Ваша оценка: Ничего

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

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

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

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

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

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

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

0
Ваша оценка: Ничего
ramok аватар

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

смотрим функцию 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;
}
0
Ваша оценка: Ничего

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

довольно часто возникает необходимость посчитать сумму чисел в выводе какой-либо программы.
например, если сделать 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, а потом сделать

0
Ваша оценка: Ничего