При ситуации, когда был найден вариант файла подобного вида, скрипт впадал в кому
Экспроприатор (16 сер.) - web-dl1080p.mkv*
Serials_file_destination=$(basename $Serials_destination)
заменить на Serials_file_destination=$(basename "$Serials_destination")
и по аналогии в других местах: dirname, mv. Предполагаю как-то через ExpandEnvironmentString.
Но не могу разобраться.
Нужно написать программу, которая будет посылать в stdin программы данные и забирать из stdout.
…
Что я делаю не так?
#include <unistd.h>
int main()
{
int fd[2][2];
pipe(fd[0]);
pipe(fd[1]);
pid_t pid_fork = fork();
if (!pid_fork) {
// Дочерний процесс
close(fd[0][1]);
close(fd[1][0]);
dup2(fd[0][0], STDIN_FILENO);
dup2(fd[1][1], STDOUT_FILENO);
execl("/usr/bin/tr", "/usr/bin/tr", "l", "r", NULL);
} else {
// Родительский процесс
close(fd[0][0]);
close(fd[1][1]);
char buf[1000];
ssize_t sz;
write(fd[0][1], "hello, world\n", sizeof("hello, world\n") - 1);
close(fd[0][1]);
sz = read(fd[1][0], buf, sizeof(buf));
if (sz > 0) {
write(STDOUT_FILENO, buf, sz);
}
}
return 0;
}
Как сказать процессору «выполни это»?
xxd -r dump
, но в твоём дампе странный порядок байтов в словах. Можно сначала перевернуть байты, а потом прогнать через xxd: sed 's/\([^ ]*\)/\1/;s/ \(..\)\(..\)/ \2\1/g' < dump | xxd -r > bin
. Прогнав полученный код через дизассемблер можно понять (по переходу к адресу 0x7c05), что это код для бут-сектора:$ objdump -b binary -m i8086 -D bin
bin1: file format binary
Disassembly of section .data:
00000000 <.data>:
0: ea 05 7c 00 00 ljmp $0x0,$0x7c05
5: 31 c0 xor %ax,%ax
...
$ head -c 254 /dev/zero >> bin
$ printf "\x55\xaa" >> bin
$ qemu-system-i386 -hda bin -d in_asm,exec -D log
----------------
IN:
0x00007c00: ea 05 7c 00 00 ljmpw $0x0:$0x7c05
Trace 0: 0x7f7a98164f00 [00000000/00007c00/0x40]
----------------
IN:
0x00007c05: 31 c0 xorw %ax, %ax
0x00007c07: 8e d8 movw %ax, %ds
0x00007c09: 8e d0 movw %ax, %ss
Trace 0: 0x7f7a98165040 [00000000/00007c05/0x40]
----------------
IN:
0x00007c0b: bc 00 7c movw $0x7c00, %sp
Trace 0: 0x7f7a98165180 [00000000/00007c0b/0x48]
----------------
IN:
0x00007c0e: 88 16 db 7c movb %dl, 0x7cdb
0x00007c12: 31 c0 xorw %ax, %ax
0x00007c14: 8e c0 movw %ax, %es
0x00007c16: bb 00 80 movw $0x8000, %bx
0x00007c19: 8a 16 db 7c movb 0x7cdb, %dl
0x00007c1d: b6 00 movb $0, %dh
0x00007c1f: b1 02 movb $2, %cl
0x00007c21: b5 00 movb $0, %ch
0x00007c23: b0 30 movb $0x30, %al
0x00007c25: e8 53 00 callw 0x7c7b
Trace 0: 0x7f7a98165280 [00000000/00007c0e/0x40]
----------------
IN:
0x00007c7b: b4 02 movb $2, %ah
0x00007c7d: cd 13 int $0x13
----------------
IN:
0x00007c2f: fa cli
0x00007c30: 0f 01 16 f4 7c lgdtw 0x7cf4
0x00007c35: 0f 20 c0 movl %cr0, %eax
0x00007c38: 66 83 c8 01 orl $1, %eax
0x00007c3c: 0f 22 c0 movl %eax, %cr0
Linking TBs 0x7f7a98167580 [00007c2b] index 0 -> 0x7f7a981676c0 [00007c2f]
Trace 0: 0x7f7a981676c0 [00000000/00007c2f/0x40]
----------------
IN:
0x00007c3f: ea 44 7c 08 00 ljmpw $0x8:$0x7c44
Trace 0: 0x7f7a981678c0 [00000000/00007c3f/0xc0]
----------------
IN:
0x00007c44: 66 b8 10 00 movw $0x10, %ax
0x00007c48: 8e d8 movl %eax, %ds
Trace 0: 0x7f7a98167a00 [00000000/00007c44/0x90]
----------------
IN:
0x00007c4a: 8e c0 movl %eax, %es
Trace 0: 0x7f7a98167b40 [00000000/00007c4a/0x90]
----------------
IN:
0x00007c4c: 8e e0 movl %eax, %fs
0x00007c4e: 8e e8 movl %eax, %gs
0x00007c50: 8e d0 movl %eax, %ss
Trace 0: 0x7f7a98167c80 [00000000/00007c4c/0x90]
----------------
IN:
0x00007c52: bc 00 c0 07 00 movl $0x7c000, %esp
Trace 0: 0x7f7a98167dc0 [00000000/00007c52/0xb8]
----------------
IN:
0x00007c57: e8 a4 03 00 00 calll 0x8000
как например запихнуть это в exe файл?
когда из слушающих сокетов ловиться соединение(accept), оно добовляется в набор для отслеживания еполл_вайтом и тут же возвращается с событием 4. Как? По логике если ты ко мне подключился, я жду от тебя "новостей" с цифрой 1.
При достижении или больше определённого количества переменных или функций, перестают работать все string literals в ядре C
mov bx, KERNEL_OFFSET ; Read from disk and store in 0x1000
mov dh, 54 ;31 or 54
как можно увеличить память для них?
Почему … GetKeyState() не считывает состояние клавиши?
The key status returned from this function changes as a thread reads key messages from its message queue. The status does not reflect the interrupt-level state associated with the hardware. Use the GetAsyncKeyState function to retrieve that information.
qemu-img dd -O raw if=file.qcow2 of=file.raw
.mkdir fs ; sudo mount file.raw fs
. Если там таблица разделов, можно каким-нибудь kpartx создать устройства для каждого из разделов и примонтировать нужные:$ mkdir fs ; sudo kpartx -av file.raw
add map loop0p1 (254:4): 0 65536 linear 7:0 2048
add map loop0p2 (254:5): 0 2029568 linear 7:0 67584
$ sudo mount /dev/mapper/loop0p2 fs
если роутер отправил мне-компьютеру запрос, то какой процесс будет отвечать на него?
за получение ip по DHCP отвечает клиент
ip=dhcp
, тогда будет работать код вот из этого файлика. Такие же порты используются при нахождении нажатой клавиши на клавиатуре, так как они могут быть и там и тут?
Моя программа … выводит адрес на месте первого числа и букву на месте второго числа.
как исправить?
"%d %d"
.push razmer
чтобы передать адрес переменной razmer в scanf, но в printf нужно передать не адрес переменной, а её значение. Например так:mov eax, [razmer]
push eax
Как в ситуации ниже, поступает компилятор?
string::operator <
. Если это std::string, то оператор выполняет лексикографическое сравнение, т.е. сравнивает символы обеих строк по очереди до первой различающейся пары, меньшей будет та строка, которой принадлежит символ с меньшим кодом.Могут ли быть какие-то проблемы
Почему не получается деление div на ассемблере в С++?
char b1 = 3, b2, b3 = 1 , res2; //1 байт el, bl, ah ]] cbw -> short short w1= 1000, w2 = 500, w3 = 2; //(w1 - w2) * w3 / b1
div bl
"Кадр не находится в модуле". Подскажите с чем это может быть связано
HANDLE h = CreateThread( NULL, 0, factorial(gn), NULL, NULL, NULL );
CreateThread(NULL, 0, factorial, NULL, NULL, NULL)
). 3) если ты сделаешь эти два изменения, тебе прийдётся также переделать передачу параметра в функцию factorial и получение результата её работы.