LINUX.ORG.RU

fork()


0

0

Не совсем пониманию принцип работы сабж. Прочитал часть книги Э.Таненбаума "Современные ОС", посвящённую п-сам.. но до конца не понял...

Допустим такая ситуация: Работает программа ей нужно создать процесс который будет проверять семафор на изменения и при изменении значения выполнять какие-либо действия, например вывод сообщения на stdout...(просто пример). как это реализовать на С???

anonymous

Таненбаум - то причем?

#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
...
pid_t pid;
...

switch(pid=fork()){
   case -1:
      perror("fork");
       exit(1);
   case 0:/*the child*/
       проверяем семафор;
       свистим;
       exit(0);
   default:/*the father*/
       waitpid(pid,NULL,0);
}
...


Довольно идиотский код...
Зачем форкать новый процесс, чтобы 
проверить семафор?

Die-Hard ★★★★★
()

в чем проблема понимания принципа работы fork()?

было один процесс - стало два одинаковых процесса, чтобы различать кто где fork() возвращает разные значения в разные процессы - вот тебе и принцип работы ..

lg ★★
()

Читай Робачевского, там все разжевано.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.