LINUX.ORG.RU

Сообщения ubik

 

The C Programming Language. K&R

Форум — Development

Какая-то загадка для меня происходит при выполнении упражнения 1-17 из K&R. Вот что нужно сделать:

Exercise 1-17. Write a program to print all input lines that are longer than 80 characters.

Функцию getline() я взял как есть из книги, немного подправил лишь main() вот так:

#include <stdio.h>
#include "inc/getline.h"

#define MAXLINE 1000			/* maximum input line size */
#define MINLENGTH 80

/* Exercise 1-17. Write a program to print all input lines that are
 * longer than 80 characters.
 */

int main()
{
	int len;					/* current line length */
	char line[MAXLINE];			/* current input line */

	while ((len = _getline(line, MAXLINE)) > 0) {
		printf("DBG >>>\n");
		printf("MINLENGTH = %d\n", MINLENGTH);
		printf("len = %d\n", len);
		printf("DBG <<<\n\n");
		if (len > MINLENGTH) {
			printf(line);
		}
	}
	return 0;
}

Собираю и запускаю всё это дело таким образом:

x86_64-pc-linux-gnu-gcc -g3 -Wall -Wpedantic -std=c99 ex_1-17.c inc/getline.c -o ex_1-17 && ./ex_1-17 < ex_1-17_test.txt 
DBG >>>
MINLENGTH = 80
len = 80
DBG <<<

DBG >>>
MINLENGTH = 80
len = 81
DBG <<<

this is the line which is 80 characters wide: ----------------------------------
DBG >>>
MINLENGTH = 80
len = 82
DBG <<<

this is the line which is 81 characters wide: -----------------------------------
DBG >>>
MINLENGTH = 80
len = 91
DBG <<<

this is the line which is 90 characters wide: --------------------------------------------

Файл ex_1-17_test.txt содержит такие строки:

this is the line which is 79 characters wide: ---------------------------------
this is the line which is 80 characters wide: ----------------------------------
this is the line which is 81 characters wide: -----------------------------------
this is the line which is 90 characters wide: --------------------------------------------

Я не могу понять, почему выводится строка длиной в 80 чаров, если по условию len > MINLENGTH? А также дебажная инфа изначально печатается без строки в 80 чаров, почему потом эта строка печатается?

DBG >>>
MINLENGTH = 80
len = 80
DBG <<<

DBG >>>
MINLENGTH = 80
len = 81
DBG <<<

this is the line which is 80 characters wide: ----------------------------------
DBG >>>
MINLENGTH = 80
len = 82
DBG <<<

 ,

ubik
()

openvpn on openwrt router

Форум — Admin

Всем привет. Настроил openvpn на router'е tp-link wdr 4300 с openwrt на борту. Клиент нормально цепляется к роутеру, но не может доступиться к хостам во внутренней сети 192.168.10.0/24 (за роутером), в интернет тоже не ходит. Хочется, чтобы клиент имел доступ к хостам за роутером и мог ходить в интернетики :)

В чём проблема?

 ,

ubik
()

Актуальная литература по ядру

Форум — Development

Всем привет.

Подскажите актуальную литературу по ядру (чтобы не по 2.6.x). Спасибо :)

 ,

ubik
()

select в питоне

Форум — Development

Всем привет :)

есть такой отрывок питоновского говнокода:

    p = subprocess.Popen(cmd.split(' '),
                         stdout = subprocess.PIPE,
                         stdin  = subprocess.PIPE,
                         stderr = subprocess.PIPE)

    while True:
        (r, w, e) = select.select([ p.stdout ], [], [], 1)

        print('dbg >>>', r)
        print(p.stdout.readline())
        print('state: ', state)
        print('r:', r)
        print('dbg <<<')

        if not r and state == 0:
            continue

        if not r and state == 1:
            p.kill()
            last_record = line['date']
            return total, first_record, last_record

        line = json.loads(p.stdout.readline())
        
        if line:
            state = 1

в переменной cmd такое:

    cmd = 'ssh root@{0} tailf -n100 {1}'.format('localhost',
           '{0}/conf/rtls.log'.format(ROOTDIR))

Хочется, такое: если в течение 3-х секунд нет никакого выхлопа, делать return

 ,

ubik
()

помогите разобраться с curl'ом

Форум — Development

Всем привет :)

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

curl -d name="Venechka Erofeev" -d tel="666" -d email="foo@bar.net" -d mtel="777" -d address="homless" -d submit="отправить" --url http://krinitsa.com.ua/ru/zamoviti

В бразуере отркывается страница с пустыми полями в форме. Такое впечатление, что данные вообще не пришли. ЧЯДНТ?

 ,

ubik
()

Playbak в виртуальный bluetooth интерфейс

Форум — Development

Всем привет.

Есть задача создать виртуальный bluetooth интерфейс и прогирать пакеты из дампа. Нашёл проект https://github.com/antweb/bluez-ant , в директории tools/replay/ есть hcireplay, который якобы позволяет это сделать.

Проблема в следующем: с помощью hciemu я могу создать виртуальный интерфейс

root@jembnode:~# hciconfig -a
hci1:   Type: BR/EDR  Bus: VIRTUAL
        BD Address: 00:07:E0:0D:C3:49  ACL MTU: 192:8  SCO MTU: 0:0
        DOWN
        RX bytes:0 acl:0 sco:0 events:16 errors:0
        TX bytes:68 acl:0 sco:0 commands:16 errors:0
        Features: 0xff 0xff 0x8f 0xfe 0xdb 0xf9 0x0b 0x80
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy:
        Link mode: SLAVE ACCEPT

root@jembnode:~# hciconfig hci1 up
Can't init device hci1: Invalid request code (56)

Версия ядра 3.19.0-42-generic. Буду благодарен за помощь :)

 

ubik
()

асинхронный jsonrpc клиент-сервер

Форум — Development

Привет Интернет.

Нужна jsonrpc либа для асинхронного общения клиента с сервером и наоборот на питоне. Нашел такое.

Но к сожалению, если команда выполняется слишком долго на стороне сервера, то он не может принимать другие команды, пока первая не завершится, а хочется наоборот.

 ,

ubik
()

Reverse engineering для новичков.

Форум — Security

Парни, очень интересует сабжевая тема. Сейчас я потихоньку дизассемблирую листинги из K&R, идёт весело и непринуждённо, но я чувствую, что уже упёрся в потолок и хочется большего.

Посоветуйте, пожалуйста, что делать дальше? Может книги какие-то есть интересные, таски, etc?

 , ,

ubik
()

Firefox start page

Форум — General

Всем привет.

Где-то здесь мелькали скриншоты с пользовательским html файлом, который используются вместо start page в Firefox. Поделитесь пожалуйста :)

 

ubik
()

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