Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Дочерние процессы  (Прочитано 755 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Demik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Дочерние процессы
« : 18 Апреля 2012, 23:18:39 »
Привет. Задали тут написать программу( в принципе я её написал = ) ), но в ней я использовал дочерние процессы, и они вроде как работаю, собственно в чем проблема, мне нужно что бы один и тот же дочерний процесс выполнялся два раза, до определённых действий и после них, но вся проблема в том, что по факту этот процесс (который дочерний) выполняется два раза уже после всех действий. Подскажите, как мне сделать то что я хочу? = )
Вот мой код:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 18 Апреля 2012, 23:32:19 от Demik »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Дочерние процессы
« Ответ #1 : 19 Апреля 2012, 06:50:16 »
до тебя еще никто не опускал Си до уровня простого спритового языка

Оффлайн Demik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Дочерние процессы
« Ответ #2 : 19 Апреля 2012, 11:31:16 »
Подскажите пожалуйста, как нужно сделать, что бы было правильно, хоя бы скажите где можно прочитать?

Оффлайн alecsartania

  • Старожил
  • *
  • Сообщений: 1564
  • УМка.
    • Просмотр профиля
Re: Дочерние процессы
« Ответ #3 : 19 Апреля 2012, 11:34:39 »
семафоры (флаги)
Дома Linux Mint 20.1 / 20.02

Оффлайн Demik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Дочерние процессы
« Ответ #4 : 19 Апреля 2012, 11:43:20 »
семафоры (флаги)
Я честно хотел бы загуглить то, что вы посоветовали, но думаю, что гугл не поймёт меня(или я его). Напишите пожалуйста немного конкретнее.

Оффлайн S_F_H

  • Участник
  • *
  • Сообщений: 129
  • Да будет crossplatform!
    • Просмотр профиля
Re: Дочерние процессы
« Ответ #5 : 19 Апреля 2012, 12:42:28 »
Найдите в интернете книгу по программированию в Linux. Любую. Обычно там достаточно информации на эту тему.

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: Дочерние процессы
« Ответ #6 : 19 Апреля 2012, 12:47:38 »
Найдите в интернете книгу по программированию в Linux. Любую. Обычно там достаточно информации на эту тему.
http://rus-linux.net/forum/viewtopic.php?f=3&t=1495
- там всё для вас есть в последней части.


Пользователь решил продолжить мысль 19 Апреля 2012, 12:49:50:
Подскажите пожалуйста, как нужно сделать, что бы было правильно, хоя бы скажите где можно прочитать?

Если "почитать", то можете читать книгу: http://www.books.ru/books/qnxunix-an...357604/?show=1 - там есть всё по вашим вопросам. Книгу можете скачать свободно: http://www.flibusta.net/a/36261.

То, что у вас написано с использованием fork() - оно и правильно (синтаксически) и ерунда (по существу).


Пользователь решил продолжить мысль 19 Апреля 2012, 12:55:20:
семафоры (флаги)

Семафоры (и любые другие примитивы синхронизации) для такой задачи - избыточны ("слишком жирно будет").
Там умелой синхронизации на завершениях (wait(), а ещё лучше - waitpid()) - за глаза достаточно.

P.S. автору темы (автору проблемы ;)):
читайте:
$ man 3 wait
...
« Последнее редактирование: 19 Апреля 2012, 12:55:20 от Olej »

Оффлайн Demik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Дочерние процессы
« Ответ #7 : 19 Апреля 2012, 13:13:37 »
Спасибо всем, вы мне очень помогли. У меня получилось, то что я хотел = )

 

Страница сгенерирована за 0.081 секунд. Запросов: 25.