Конфигурация маршрутов

Perl позволяет это с помощью функции системного вызова :

$ perldoc -f syscall
    syscall NUMBER, LIST
            Calls the system call specified as the first element of the list,
            passing the remaining elements as arguments to the system call. If
⋮

В документации также есть пример вызова write (2):

require 'syscall.ph';        # may need to run h2ph
my $s = "hi there\n";
syscall(SYS_write(), fileno(STDOUT), $s, length $s);

Не могу сказать, что я когда-либо использовал эту функцию. Что ж, до того, как только сейчас подтвердить, что пример действительно работает.

Похоже, это работает с getrandom :

$ perl -E 'require "syscall.ph"; $v = " "x8; syscall(SYS_getrandom(), $v, length $v, 0); print $v' | xxd
00000000: 5790 8a6d 714f 8dbe                      W..mqO..

И если у вас нет getrandom в вашем syscall.ph, вы можете использовать вместо этого номер. Это 318 на моем тестовом Debian (amd64). Помните, что номера системных вызовов Linux зависят от архитектуры.

1
26.11.2018, 01:53
0 ответов

Теги

Похожие вопросы