當前位置:編程學習大全網 - 編程語言 - 操作系統編程求助

操作系統編程求助

#include<stdio.h>

#include<stdlib.h>

#include<signal.h>

#include<sys/types.h>

#include<unistd.h>

#include "math.h"

void fun_ctrl_c();

void fun_ctrl_z();

void fun_ctrl_d();

int main()

{

int i;

sigset_t set, pendset;

struct sigaction action;

(void) signal(SIGINT, fun_ctrl_c);

(void) signal(SIGTSTP,fun_ctrl_z);

(void) signal(SIGQUIT, fun_ctrl_d);

if (sigemptyset(&set) < 0)

perror("初始化信號集合錯誤");

if (sigaddset(&set, SIGQUIT) < 0)

perror("Ctrl+\");

if (sigaddset(&set, SIGTSTP) < 0)

perror("Ctrl+Z加入信號集合錯誤");

if (sigprocmask(SIG_BLOCK, &set, NULL) < 0)

perror("往信號阻塞集增加壹個信號集合錯誤");

else

{

for (i = 0; i < 10; i++) {

printf("Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號\n ");

sleep(3);

}

}

if (sigprocmask(SIG_UNBLOCK, &set, NULL) < 0)

perror("從信號阻塞集刪除壹個信號集合錯誤");

}

void fun_ctrl_d()

{

int i,j,n;

printf("\t妳按了Ctrl+\是不是很長時間沒理妳?\n");

srand((int)time(0));

for(i=0;i<10;i++)

{

j=1+(int)(100.0*rand()/(RAND_MAX+2.0));

把隨機數函數換了(實在不會換的換數字)

printf(" %d ",j);

}

printf("\n");

for(n=0;n<4;n++)

printf("\t正在處理Ctrl+\信號處理函數 \n");

}

void fun_ctrl_z() /*自定義信號處理函數 */

{

int n ;

printf("\t妳按了Ctrl+Z 系統是不是很長時間沒理妳?\n");

int i,j;

for(i=0;i<6;i++)

{

自定義信號處理函數輸出壹幅圖形(自己網上去查代碼)

printf("\n");

}

for(n=0;n<6;n++)

printf("\t正在處理Ctrl+Z信號處理函數 \n");

}

void fun_ctrl_c( ) /*自定義信號處理函數 */

{

int n;

printf("\t妳按了'Ctrl+C' 系統及時地處理了此信號處理函數\n");

for(n=0;n<2;n++)

printf("\t正在處理Ctrl+C信號處理函數 \n");

}

編譯:[root@localhost root]# vi 4.c

運行:[root@localhost root]# gcc -o 4 4.c

[root@localhost root]# ./4

顯示結果:

Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號

Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號

Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號

Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號

Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號

Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號

Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號

Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號

Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號

Ctrl+\ ?trl+Z信號處理處於阻塞狀態,能及時處理'Ctrl+C'信號

妳按了Ctrl+Z 系統是不是很長時間沒理妳?

自定義信號處理函數輸出壹幅圖形(把這幅圖輸出)

正在處理Ctrl+Z信號處理函數

正在處理Ctrl+Z信號處理函數

正在處理Ctrl+Z信號處理函數

正在處理Ctrl+Z信號處理函數

正在處理Ctrl+Z信號處理函數

正在處理Ctrl+Z信號處理函數

  • 上一篇:可編程控制技術及應用試題
  • 下一篇:中山學子親授斬獲9所世界名校全獎秘訣
  • copyright 2024編程學習大全網