信号方面的有关问题请问.请大家指点

信号方面的问题请教.请大家指点
我是想让 链接库 在一定条件下给 程序 发一个自己定义的信号的.信号响应函数我需要在 程序里实现.于是我打算做一个传递函数的参数来实现这个过程.

以下代码实现:
// ————lib.cpp
#include <…>

typedef void (*fn_t)(int);

void initlib(fn_t fn)
{
  signal(SIGUSR1,fn);
  raise(SIGUSR1);
}

//———-main.cpp
#include <…>
#include "lib.cpp"

static void sig_fn(int signo)
{
}

int main(void)
{
  initlib(sig_fn);
  while(1)
  pause();

  return 1;
}

现在单独编译都可以过的去.在link的时候说多次定义 initlib(void (*)(int)) 这是为啥哪?

再请教一下如我这样的要求,一般要怎么设计这个信号哪?


/* lib.h */
#ifndef MYSIGLIB_H
#define MYSIGLIB_H

/* type */
typedef void (*fn_t)(int);

/* func dec */
void initlib(fn_t fn);

#endif

/* lib.cpp */
#include "lib.h"

void initlib(fn_t fn)
{
signal(SIGUSR1, fn);
}

/**********************/

/* main.cpp */
#include <lib.h>

/* signal handler */
static void sig_fn(int signo)
{
/* TODO */
}

/* main */
int main()
{
initlib(sig_fn);
while (1)
pause();

return 0;
}

信号方面的有关问题请问.请大家指点

相关文章:

你感兴趣的文章:

标签云: