170 похожих чатов

У тебя one и two не инициализированы. вот давай "порисуем" схему,

как пойдет выполнение процесса.

1. Делаем one = frok(); Что будет дальше?
если не произошло ошибки (которую ,к слову, ты не проверяешь), то у тебя будет два процесса. В родительском процессе one будет иметь pid дочернего процесса и он гарантированно будет больше 1. В дочернем процессе one будет равен 0. Благодаря этому в коде мы можем определить где какой процесс выполняется. Замечу, что после fork() изменения переменной в одном процессе не влияют на переменные в другом. Дальше выполнение программы независимо, хоть и исполняют один и тот же код.

2. Дальше идет if (!one). Напомню, в одном случае one равен 0, а во втором больше 0. В этот if зайдет дочерний процесс. И после выполнения инструкция в if, у тебя будет родительский процесс, который имеет дочерний процесс, который в свою очередь имеет сам дочерний процесс. Другими словами: дед-отец-сын. Такую структуру ты хочешь или другую?
Опять же oneId = getpid(). Эту строчку не увидят другие процессы.

3. Первый if прошли. Идем дальше ко второму if. К этой строчке у тебя уже будет три процесса. В процессе "дед" у тебя two имеет неизвестное значение. В процессе "отец" будет больше нуля, а в процессе "сын" равен 0.

4. Во втором if изменения twoId нигде заметно не будет. В этот if могут зайти процесс "сын" и ВОЗМОЖНО процесс "дед", так как неизвестно, чему в процессе "дед" равен two. И гарантированно значения переменной twoId после выполнения этого if будут разными, так как у процессов разные pid.

1 ответов

19 просмотров

Ребята, всё классно, круто, но только это совсем не для начинающих...

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта