[linux操作系统实验]信号机制(按ctrl c给父进程发信号后,子进程没有反应?)

/ 7,340评论 / 26373阅读 / 1点赞

问题

按ctrl c给父进程传信号后,父进程会发送信号给子进程,为什么子进程没有反应?

而只有修改父进程给子进程发送的信号为SIGINT时才会有反应?


实验具体内容

实验内容

概念

信号的基本概念

信号的发送

对信号的处理

涉及函数

kill( )

signal( )

名  字说          明
01SIGHUP挂起(hangup)
02SIGINT中断,当用户从键盘按^c键或^break键时
03SIGQUIT退出,当用户从键盘按quit键时
04SIGILL非法指令
05SIGTRAP跟踪陷阱(trace trap),启动进程,跟踪代码的执行
06SIGIOTIOT指令
07SIGEMTEMT指令
08SIGFPE浮点运算溢出
09SIGKILL杀死、终止进程 
10SIGBUS总线错误
11SIGSEGV段违例(segmentation  violation),进程试图去访问其虚地址空间以外的位置
12SIGSYS系统调用中参数错,如系统调用号非法
13SIGPIPE向某个非读管道中写入数据
14SIGALRM闹钟。当某进程希望在某时间后接收信号时发此信号
15SIGTERM软件终止(software  termination)
16SIGUSR1用户自定义信号1
17SIGUSR2用户自定义信号2
18SIGCLD某个子进程死
19SIGPWR电源故障

源代码

#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <iostream>
#include <sys/wait.h>
#include <sys/types.h>
using namespace std;

/*记录子进程pid,
 * whois:
 *      0:父进程
 *      1:子进程1
 *      2:子进程2*/
int pid1 = 0, pid2 = 0, whois = 0;

/*信号*/
#define COOLSIG SIGINT

/*响应信号*/
void do_exit(int)
{
        switch (whois)
        {
        case 0:
        {
                kill(pid1, COOLSIG);
                kill(pid2, COOLSIG);
                cout << "<< wait1: " << wait(0) << endl;
                cout << "<< wait2: " << wait(0) << endl;
                cout << "<< 父进程退出" << endl;
        }break;
        case 1:;
        case 2:
        {
                cout << "<< 子进程" << whois << "结束!" << endl;
        }break;
        }
        exit(0);
}

int main()
{
        cout << "<< COOLSIG = " << COOLSIG << endl;
        pid1 = fork();
        if (pid1 == -1){
                cout << "<< fork error" << endl;
        }
        else if (pid1 == 0)
        {
                 whois = 1;      //子进程1
                 signal(COOLSIG, do_exit);
        }
        else
        {
                cout << "pid1 = " << pid1 << endl;
                pid2 = fork();  //父进程
             	if (pid2 == -1)
                {
                        cout << "<< fork error" << endl;
                }
                else if (pid2 == 0)
                {
                        whois = 2;      //子进程2
                        signal(COOLSIG,do_exit);
                }
                else
                {
                        cout << "pid2 = " << pid2 << endl;
                        whois = 0;      //父进程
                        signal(SIGINT, do_exit);
                        cout << "<< 父进程等待 ctrl + C ..." << endl;
                }
        }
        while (1)
                usleep(100);
        cout << "<< 退出了,whois = " << whois << endl;
        return 0;
}

运行结果截图

思考

  1. Sazravh说道:

    Здравствуйте!
    Купить документ ВУЗа
    edpillsfinder.com/

  2. Sazriyb说道:

    Здравствуйте!
    Заказать документ ВУЗа
    gostcatalog.ru/index.php?p=1402763814

  3. Uazrhuh说道:

    Привет,друзья!
    Заказать диплом университета .
    telegra.ph/kupit-diplom-ehkonomista-v-moskve-08-13

  4. Cazrkwt说道:

    Привет, друзья!
    Купить диплом о высшем образовании
    купить диплом в ялте

  5. Если вы искали где отремонтировать сломаную технику, обратите внимание – ремонт бытовой техники

  6. Uazrspj说道:

    Здравствуйте!
    Купить диплом о высшем образовании.
    telegra.ph/kupit-diplom-tehnikuma-spb-08-13

  7. Uazrbom说道:

    Добрыйдень!
    Купить диплом о высшем образовании.
    telegra.ph/kupit-diplom-v-kurgane-08-13-7

  8. Davidacupt说道:

    Букмекер Мелбет неслучайно пользуется популярностью среди игроков. Если вы желаете делать ставки на UFC, воспользуйтесь сайтом оператора Мелбет. Здесь предложена одна из лучших росписей в режиме Live и в линии. Обширная вариативность ставок – на исход, продолжительность состязания и формы досрочных побед, а также сравнительно высокие коэффициенты сделают вашу игру наиболее насыщенной. Для поддержания интересов клиентов, букмекер Мелбет предлагает разнообразные бонусные программы, которые дают определенные привилегии игрокам. Они могут выражаться в фрибетах, бонусах к депозиту или в виде кэшбэка. Чтобы открыть доступ ко всем бонусам от букмекера, используйте мелбет промокод при регистрации. Бонусы, которые предлагает букмекер действующим клиентам, можно использовать на ставках по любым спортивным направлениям. Если вы интересуетесь смешанными единоборствами, на сайте Мелбет можно найти порядка сотни предложений по заключению пари на актуальные матчи. Выбор ставок доступен как в линии, так и в Live-разделе. Чтобы воспользоваться бонусами от букмекера и перейти к заключению пари на спорт, необходимо создать личную учетную запись на сайте. Рассказываем, как это сделать.

  9. Jeffreykes说道:

    оптимизация сайта недорого продвижение сайтов

  10. Georgeacupt说道:

    ПромоКод Букмекерской Конторы Melbet 2024 При Регистрации – это код для новых пользователей, так как он дает денежные призы на первый депозит новым игрокам. промокод Melbet при регистрации – это отличный способ сделать игру максимально захватывающей и прибыльной. Букмекер регулярно запускает выгодные бонусные программы и акции, которые помогают беттерам наслаждаться игровым процессом и иметь особые привилегии. Сегодня доступно несколько типов промокодов на игру в Мелбет. Они различаются условиями получения и принципом действия. Melbet промокод при регистрации, увеличивающий сумму первого взноса. С его помощью можно получить дополнительные 130% на игровой баланс для заключения пари.

  11. Семейные расстановки – Hellinger. https://rasstanovkiural.ru

  12. WarrenLal说道:

    https://1win.directory/# 1win зеркало

  13. Sazrjoa说道:

    Здравствуйте!
    Приобрести документ о получении высшего образования
    google.com.eg/url?q=aurus-diploms.com

  14. Lazridy说道:

    Здравствуйте!
    Мы предлагаем дипломы любой профессии по доступным тарифам.
    mypenza.ru/forum/index.php?showtopic=61980

  15. Jessesaf说道:

    vibration analysis
    The Importance of Oscillation Control Tools in Machinery
    In industrial settings, equipment and rotating equipment serve as the backbone of manufacturing. However, one of the most common challenges which can impede the operation as well as lifetime is vibration. Vibrations might lead to a series of complications, including reduced exactness along with performance to greater wear and tear, ultimately causing high-cost downtime and fixes. This is when vibration management equipment is necessary.

    Why Vibration Control is Necessary

    Vibration inside equipment can bring about numerous harmful effects:

    Minimized Functional Performance: Excessive oscillation may bring about misalignment as well as distortion, lowering the productivity in such devices. Such can lead to delayed output times and elevated power consumption.

    Heightened Erosion: Constant vibration accelerates the damage in equipment components, bringing about more regular maintenance and a chance of unexpected unexpected issues. Such a scenario doesn’t merely heightens operational costs and decreases the durability of the devices.

    Safety Risks: Excessive resonance may bring substantial safety concerns for both the equipment and the equipment along with the operators. In, serious conditions, such vibrations may bring about disastrous equipment breakdown, jeopardizing operators as well as leading to widespread destruction to the environment.

    Precision and Manufacturing Quality Challenges: In businesses which rely on exact measurements, for example industrial sectors as well as aviation, vibrations could result in flaws in the manufacturing process, producing defects and more waste.

    Reasonably Priced Approaches for Oscillation Control

    Investing in vibration control tools is not just a necessity and also a smart decision for any company that uses mechanical systems. We offer cutting-edge vibration management systems work to intended to reduce oscillation from various mechanical systems or rotating machinery, guaranteeing uninterrupted as well as productive processes.

    What sets our tools apart is its reasonable pricing. We understand the importance of affordability in today’s competitive market, which is why we provide high-quality vibration regulation systems at costs that are affordable.

    Through selecting our equipment, you are not just securing your equipment along with boosting its efficiency but also putting investment towards the sustained performance of your operations.

    Final Thoughts

    Oscillation control is a vital factor in preserving the efficiency, protection, as well as longevity of your industrial equipment. With our economical vibration management tools, you can ensure your production operate seamlessly, your products remain top-tier, along with your workers stay safe. Don’t let resonance affect your machinery—invest in the proper tools today.

  16. Scottshora说道:

    1xbet официальный сайт мобильная версия: 1xbet официальный сайт – 1xbet официальный сайт

  17. Cazrwbq说道:

    Привет!
    Приобрести диплом ВУЗа
    купить диплом мастера маникюра и педикюра

  18. WarrenLal说道:

    http://pin-up.diy/# пин ап казино

  19. Scottshora说道:

    1win зеркало: 1win вход – 1win вход

  20. WarrenLal说道:

    http://pin-up.diy/# пин ап вход

  21. Профессиональный сервисный центр по ремонту Apple iPhone в Москве.
    Мы предлагаем: качественный ремонт айфонов в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  22. Если вы искали где отремонтировать сломаную технику, обратите внимание – ремонт бытовой техники в новосибирске

  23. Профессиональный сервисный центр по ремонту Apple iPhone в Москве.
    Мы предлагаем: ремонт iphone на дому в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  24. Sazrztp说道:

    Стоимость дипломов высшего и среднего образования и процесс их получения
    acertdglobalplatform.mn.co/posts/65294335

  25. WarrenLal说道:

    http://1win.directory/# 1win вход

  26. Uazrqpb说道:

    Добрыйдень!
    Заказать диплом ВУЗа .
    telegra.ph/diplom-buhgaltera-kupit-08-13-4

  27. Если вы искали где отремонтировать сломаную технику, обратите внимание – ремонт бытовой техники

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注