URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9287
[ Назад ]

Исходное сообщение
"Проверте "

Отправлено АННОНАНИЕИМНУН , 16-Ноя-11 09:12 

#include <stdio.h>
#include <signal.h>
#include <sys/wait.h>

void hup_handle() {

    kill(getpid(), SIGINT);
    return;
}

int main(void) {

    pid_t pid, work = 0;
    int ret;

    do {

        pid = fork();
        if (pid == 0) {
            signal(SIGHUP, hup_handle);
            
            while (1) {
                sleep(5);
            }
        } else if (pid < 0) {
            return (-1);
        } else {
            signal(SIGHUP, SIG_IGN);
            waitpid(pid, &ret, WUNTRACED);

            if (!WIFEXITED(ret))
                work = 1;
            else if (WIFSIGNALED(ret))
                work = 0;
            else if (WIFSTOPPED(ret))
                work = 1;
        }
    } while (work > 0);
    return (0);
}

Где косяк? :)


Содержание

Сообщения в этом обсуждении
"Проверте "
Отправлено pavlinux , 16-Ноя-11 09:19 
> Где косяк? :)

Я другой узел вяжу (с) Любовь и Голуби