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

/ 4,735评论 / 18410阅读 / 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. Diplomi_hbMa说道:

    купить сертификат специалиста http://www.school5-priozersk.ru .

  2. Diplomi_kdMa说道:

    купить диплом гознак school5-priozersk.ru .

  3. anal_onSr说道:

    русский анал с разговорами онлайн русский анал с разговорами онлайн .

  4. Diplomi_gnKt说道:

    купить диплом вуза http://www.school-10-lik.ru/ .

  5. Diplomi_miKt说道:

    купить диплом технолога https://school-10-lik.ru .

  6. Diplomi_vmKt说道:

    купить диплом парикмахера http://www.school-10-lik.ru .

  7. Diplomi_vcKt说道:

    купить диплом повара school-10-lik.ru .

  8. DichaelDuh说道:

    Ежегодно в течение сентября организовывается Тюменский инновационный форум «НЕФТЬГАЗТЭК».
    Форум посвящен развитию способов инновационного роста областей топливно-энергетического комплекса, дискуссии а также определению заключений, созданию благоприятных условий для развития инноваторских проектов. Ежегодный тюменский форум представляетсобой авторитетной дискуссионной площадкой по продвижению нефтегазовой отрасли в Российской Федерации, имеет высокий авторитет и актуальность, созвучен общей стратегии развития инновационного направления в России
    https://neftgaztek.ru/

  9. anal_xqSr说道:

    анальный секс с русскими разговорами анальный секс с русскими разговорами .

  10. Diplomi_bwKt说道:

    купить диплом механика http://school-10-lik.ru .

  11. anal_phSr说道:

    русский анал с разговорами смотреть видео http://www.safavia.ru .

  12. Diplomi_vhKt说道:

    купить диплом техника http://school-10-lik.ru/ .

  13. Diplomi_lmKt说道:

    купить диплом о среднем образовании https://www.school-10-lik.ru .

  14. Diplomi_hsKt说道:

    купить аттестат за 11 класс school-10-lik.ru .

  15. RichardLeant说道:

    Скачать музыку https://musiciansfix.com высокого качества в любом жанре. Огромный выбор треков от классики до новинок поможет вам создать идеальный плейлист. Наслаждайтесь любимыми композициями и открывайте для себя новые музыкальные горизонты. Присоединяйтесь и начните скачивать музыку прямо сейчас!

  16. Diplomi_dkKt说道:

    купить диплом в екатеринбурге https://www.school-10-lik.ru .

  17. Telegramm_svKa说道:

    телеграмм аккаунт купить телеграмм аккаунт купить .

  18. Diplomi_edMa说道:

    купить сертификат специалиста https://school5-priozersk.ru/ .

  19. Lewisfadon说道:

    Делаем отличное предложение вам сделать консультацию (аудит) по умножению продаж также прибыли в вашем бизнесе. Формат аудита: индивидуальная встреча или сессия по скайпу. Делая верные, но не сложные действия, доход от ВАШЕГО коммерциала получится увеличить в много раз. В нашем арсенале более 100 опробованных фактических методологий подъема результатов а также доходов. В зависимости от вашего коммерциала выберем для вас максимально крепкие и начнем постепенно внедрять.
    http://r-diplom.ru/

  20. Diplomi_psMa说道:

    купить диплом массажиста купить диплом массажиста .

  21. OLaneuncog说道:

    Предлагаем для вас сделать консультацию (аудит) по увеличению продаж также доходы в вашем бизнесе. Формат аудита: личная встреча или онлайн конференция по скайпу. Делая очевидные, но обыкновенные усилия, доход от ВАШЕГО бизнеса удастся увеличить в несколькио раз. В нашем запасе более 100 испытанных фактических способов повышения результатов и доходов. В зависимости от вашего бизнеса выберем для вас максимально наилучшие и сможем шаг за шагом реализовывать.
    http://r-diplom.ru/

  22. Diplomi_llMa说道:

    купить диплом о среднем образовании http://www.school5-priozersk.ru .

  23. Ismaelenriz说道:

    Делаем отличное предложение вам провести консультацию (аудит) по усилению продаж также прибыли в вашем бизнесе. Формат аудита: персональная встреча или сессия по скайпу. Делая очевидные, но простые усилия, результат от ВАШЕГО коммерциала можно превознести в несколькио раз. В нашем арсенале более 100 испытанных фактических схем повышения результатов а также прибыли. В зависимости от вашего коммерциала разработаем для вас максимально наилучшие и будем шаг за шагом реализовывать.
    http://r-diplom.ru/

  24. Gichardkaf说道:

    Делаем отличное предложение для вас провести консультацию (аудит) по усилению продаж а также прибыли в вашем бизнесе. Формат аудита: индивидуальная встреча или сессия по скайпу. Делая верные, но простые усилия, доход от ВАШЕГО коммерциала можно поднять в несколькио раз. В нашем багаже более 100 опробованных практических методик подъема продаж а также доходов. В зависимости от вашего коммерциала выберем для вас максимально наилучшие и начнем постепенно внедрять.
    http://r-diplom.ru/

  25. Laura Birkholz说道:

    I find myself lost in The words, much like one would get lost in someone’s eyes. Lead the way, I’m following.

  26. Laurie Inglese说道:

    Articulated points with finesse, like a lawyer, but without the billable hours.

  27. Claude Thomeczek说道:

    You tackle topics with such finesse, it’s like watching a skilled chef at work. Serving up knowledge with flair!

  28. Telegramm_qmKa说道:

    купить пустой аккаунт телеграмм https://kupit-akkaunt-telegramm11.ru/ .

  29. Telegramm_wzKa说道:

    купить пустой аккаунт телеграмм https://kupit-akkaunt-telegramm11.ru .

  30. Sam Bartling说道:

    The arguments were as compelling as The online persona. I’m totally sold—and not just on The ideas.

  31. Telegramm_wmKa说道:

    купить второй аккаунт телеграмм https://kupit-akkaunt-telegramm11.ru .

  32. Telegramm_klKa说道:

    купить аккаунт телеграмм с отлежкой купить аккаунт телеграмм с отлежкой .

  33. Telegramm_dpKa说道:

    телеграмм аккаунт купить телеграмм аккаунт купить .

  34. Telegramm_vsKa说道:

    телеграмм аккаунт купить сим телеграмм аккаунт купить сим .

  35. Robertver说道:

    http://azithromycinca.com/# doxycycline 100 mg cost generic
    where can you get doxycycline

  36. Michaeltrale说道:

    amoxicillin online without prescription: amoxil – purchase amoxicillin online
    buy amoxil

  37. Michaeltrale说道:

    buy amoxicillin 500mg online: amoxil – amoxicillin no prescipion
    azithromycin amoxicillin

  38. Diplom_ldst说道:

    купить диплом технолога купить диплом технолога .

  39. Diplom_rqst说道:

    купить диплом судоводителя https://www.ukr-diplom.ru .

  40. Diplom_izst说道:

    купить дипломы о высшем образовании цена купить дипломы о высшем образовании цена .

  41. Charlescoofs说道:

    http://prednisonerxa.com/# can i purchase generic clomid without prescription

  42. Always learning something new here, because apparently, I didn’t pay enough attention in school.

  43. The insights are like a fine wine—rich, fulfilling, and leaving me wanting more.

  44. Carlosnatry说道:

    10 mg prednisone: Deltasone – prednisone medication

  45. The clarity and thoughtfulness of The approach is as appealing as a deep conversation over coffee.

  46. Charlescoofs说道:

    https://azithromycinca.shop/# buy doxycycline 11554

  47. The creativity and intelligence shine through, blinding almost, but I’ll keep my sunglasses handy.

发表回复

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