С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 5

Fork, не работает процесс-ребенок

31.05.2016, 17:06. Показов 2148. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня всем.
Я - новичок в программировании. Есть цель написать программу, которая бы писала в файл 5 случайных чисел родительским процессом, а процессом-ребенком забирала эти числа из файла и производила с ними некоторые операции (суммировала, например). Суть проблемы: не выполняется код процесса-ребенка, то есть в консоль пишется только результат работы родителя (pid>1), а код ребенка (pid==0) как будто игнорируется.
Складывается впечатление, что я забыл где-то какую-то мелочь.
До чего я докатился:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import random, os
pid = os.fork()
if (pid==-1):
print("ERROR")
elif (pid>1):
i=0
while i<5:
f=open('60','a')
f.write(str(random.getrandbits(1))+'\n')
f.close()
i=i+1
print("Процесс", os.getpid(), "передал информацию")
else:
f=open('60','r')
print(f.read())
print("Процесс", os.getpid(), "информацию получил от процесса", os.getppid())
Буду благодарен за помощь, спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2016, 17:06
Ответы с готовыми решениями:

Дочерний процесс os.fork() и функция input()
Я только начал осваивать python и заранее извиняюсь, если мой вопрос покажется кому то глупым. Я поставил себе цель написать некоторую...

Fork не создал дочерний процесс
Доброго дня! Зашел в тупик, переписываю кусок кода... pid_t wpid=0; wpid=fork(); switch(wpid) { case(-1): {

не компилируется fork: Undefined reference to fork
написал маленькую fork-бомбу #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { while(1) { fork(); printf(&quot;HELLO...

5
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
31.05.2016, 17:12
Во 1 где у тебя отступы?
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 5
31.05.2016, 17:22  [ТС]
alex925, скопировалось криво, исправляюсь.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import random, os
 
pid = os.fork()
if (pid==-1):
    print("ERROR")
elif (pid>1):
    i=0
    while i<5:
        f=open('60','a')
        f.write(str(random.getrandbits(1))+'\n')
        f.close()
        i=i+1
    print("Процесс", os.getpid(), "передал информацию")
else:
    f=open('60','r')
    print(f.read())
    print("Процесс", os.getpid(), "информацию получил от процесса", os.getppid())
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
31.05.2016, 17:36
Лучший ответ Сообщение было отмечено sannysan как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import os
import random
 
from multiprocessing import Queue
 
flag = Queue()
 
pid = os.fork()
if pid == -1:
    print("ERROR")
elif pid != 0:
    with open('60', 'w') as out:
        out.write('\n'.join([str(random.randint(-5, 105)) for i in range(5)]))
    print("Процесс", os.getpid(), "передал информацию")
    flag.put(True)
    os.waitpid(pid, 0)
else:
    while not flag.qsize():
        pass
    with open('60', 'r') as inp:
        data = inp.read()
        print(data, '\n')
        print(sum(map(int, data.split())))
 
    print('Процесс', os.getpid(), 'информацию получил от процесса',
          os.getppid())
1
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 5
31.05.2016, 18:01  [ТС]
Реакция аналогичная.
Миниатюры
Fork, не работает процесс-ребенок  
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
31.05.2016, 19:13
Ничего подобного
Миниатюры
Fork, не работает процесс-ребенок  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2016, 19:13
Помогаю со студенческими работами здесь

Как именно работает Fork бомба
Доброго времени суток, я новичок и не особо знаком с shell скриптами, но вот попалась мне такая функция :(){ :|: &amp; };:. Прогуглив...

Процесс работает в консольном приложении, но не работает в форме
Требуется определение типа или пространтсва имен или признак конца файла. namespace ProcessTraining { public partial class Form1...

Не работает процесс
создаю процесс вот таким кодом string par = &quot;C:\\Windows\\Microsoft.NET\\Framework\\v3.5\\csc.exe &quot; + prpath; ...

Работает ли процесс?
Привет, как узнать запущен (работает) ли сейчас процесс, к примеру notepad.exe, заранее спасибо.

Не работает процесс Explorer
Такая трабла: в винде ХР СП2 в ЛЮБОМ пользователе не работает Explorer, тот что оболочка. Не работает так: при загрузке юзера на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru