LINUX.ORG.RU
ФорумTalks

[Клуп] 2shimon


0

0

А я таки написал фигнюлю, которая извлекает из /dev/urandom нужный файл. Извлечение xorg.conf заняло 2.6 секунды на моем железе. О каких десяти годах речь?

★★★

Фстудию, епт!

anonymous
()
Ответ на: комментарий от INFOMAN

<кокетство>
Там ошибки не везде обрабатываются должным образом. И написано не самым изящным штилем. Я стесняюсь.
</кокетство>

А вообще, хрен с вами!

cat sandbox/randextract.c
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>

int main(int argc, char** argv) {
        int rnd, master;
        char r, m;
        if (argc != 2) {
                printf("use %s <path>\n", argv[0]);
                return 1;
        }

        rnd = open("/dev/urandom", O_RDONLY);
        master = open(argv[1], O_RDONLY);
        if (rnd == -1 || master == -1) {
                perror("Error");
                return 1;
        }

        while (read(master, &m, 1) > 0) {
                while (1) {
                        if (read(rnd, &r, 1) == -1) {
                                perror("Error");
                                return 1;
                        }
                        if (r == m) {
                                putc(r, stdout);
                                break;
                        }
                }
        }
        close(rnd);
        close(master);
}

anonymous
()
Ответ на: комментарий от lester_dev

Я на работе логинюсь только чтобы топики создавать.

anonymous
()

Что, весь? А если из, хм, /dev/random?

shimon ★★★★★
()

Клубное детище Макса - говно.

anonymous
()

Zenom, задание выполнено правильно, но только формально. Потому что у нас есть с чем сравнивать (при возникновении более-менее сложных молекул сравнивать не с чем). А надо весь файл сразу найти.

shimon ★★★★★
()
Ответ на: комментарий от shimon

Ну как же? Наследственность есть? Есть, мы не ищем каждый раз всё снова, а пользуемся готовыми наработками. Изменчивость есть? Еще бы! Из генератора псевдослучайных чисел по определению нельзя постоянно извлекать одно и то же значение. Отбор есть? А то! Вся гадость, не прошедшая условие отправляется в страну вечной охоты. Даже торсионная сущность астрала сохранена, т. к. мы выводим значение r, а не m, хотя они равны.

Zenom ★★★
() автор топика
Ответ на: комментарий от anonymous

Это не смешно. Люди думали ты в серьёз, а ты.. Любому ясно, что если вытаскивать один байт и сравнивать его с нужным местом в файле, то ты вытащишь хоть весь южный парк в коллекции на dvd.

Вопрос в том, чтобы вытащить из /dev/urandom xorg.conf _целиком_. То есть чтобы это была неприрывная последовательность байтов. Вот как началась, так и закончилась. А если хоть один не верный байт - то всё, начинай сначала.

Ну и да.. если писать будешь, ты длину самого длинного совпадения запоминай и печатай. А само совпадение просто запоминай. А по ctrl+С выходи и печатай самое длинное совпадение.

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

> Ну и да.. если писать будешь, ты длину самого длинного совпадения запоминай и печатай. А само совпадение просто запоминай. А по ctrl+С выходи и печатай самое длинное совпадение.

Ну я в смысле это.. мерятся можно этим будет. Ух какая мерилка будет - всем мерилкам мерилка )

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

А вообще — вытащить бы таким образом сорцы фотошопа. Под линукс + Qt. С лицензией GPL.

Тогда креационисты точно удавятся, я гарантирую это.

shimon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.