Chinaunix首页 | 论坛 | 博客
  • 博客访问: 474275
  • 博文数量: 120
  • 博客积分: 1853
  • 博客等级: 上尉
  • 技术积分: 1177
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-22 22:40
文章分类

全部博文(120)

文章存档

2013年(16)

2012年(104)

分类: LINUX

2012-05-12 09:50:36

没有加入信号处理机制,只是用c实现了一下
首先, kill -l > sig.txt, 把信号重定向到文件
然后, 从文件中提取,根据信号名的前面是一个空格, 后面要么是空格,要么是换行符,要么是制表符号, 或者是          EOF, 放入一个二维数组,然后从二维数组提取即可

发现: 发现sig..txt中居然有\t而实际看起来一点也不像啊。

sig2str.h

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int get_sig_str(char str[][20]);
  5. int sig2str(int signo, char *str);

sig2str.c

点击(此处)折叠或打开

  1. #include "sig2str.h"

  2. int sig2str(int signo, char *str){

  3.     char sig_str[65][20] = {0};
  4.     if(get_sig_str(sig_str) != 0){
  5.         fprintf(stderr, "cannot get the str\n");
  6.         exit(-1);
  7.     }
  8.     
  9.     if(strncpy(str, sig_str[signo], 20) == NULL){
  10.             fprintf(stderr, "strcmp");
  11.             exit(-1);
  12.     }
  13.     
  14.     return 0;
  15. }

  16. int get_sig_str(char sig_str[][20]){
  17.     FILE *fp;
  18.     
  19.     
  20.     if((fp = fopen("sig.txt", "r")) == NULL){
  21.             fprintf(stderr,"fopen\n");
  22.             exit(-1);
  23.     }

  24.     int i , j, signum_start[2]= {1, 34}, signum_end[2] = {32, 65};
  25.     char test;
  26.     for(j = 0; j < 2; j++){
  27.         for(i = signum_start[j]; i < signum_end[j]; i++){

  28.             char test;
  29.             while(fgetc(fp) != 'S');

  30.             int j = 1;
  31.             sig_str[i][0] = 'S';
  32.             while((test = fgetc(fp)) != ' '&& test != '\n' && test !='\t'&&test != EOF){
  33.                 sig_str[i][j++] = test;
  34.                 printf("%d\n", test);
  35.             }
  36.             sig_str[i][j] = '\0';
  37.         }
  38.     }

  39.     return 0;
  40. }
test.c

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include "sig2str.h"

  3. int main(){
  4.     char str[20];

  5.     sig2str(20, str);

  6.     puts(str);

  7.     return 0;
  8. }


阅读(1111) | 评论(0) | 转发(0) |
0

上一篇:signal(6)-----“全局性”

下一篇:死锁

给主人留下些什么吧!~~