-1

標準Cではなく、Cでアプリケーションを開発しようとしていました。シナリオは次のとおりです。プロセッサのパワーモード実装のようなもので、プロセッサがスリープから復帰したときに割り込みが生成されるため、その時点でイベントコールバックがあり、他のモジュールをウェイクしてそのプロセスを実行できます。このために、メモリプールにアクセスするための静的割り当てを使用してリンクリストを実装しようとしています。 . したがって、コールバックがトリガーされると、登録されているモジュールにイベント通知が送信されます。

しかし、それを実装する方法がわかりません。実装への道を親切に提供してください

4

1 に答える 1

0

シグナルのことですか?クラッシュやゼロ除算が発生したときのように?以下は、シグナルをトラップする posix の例です。

void abortHandler( int signum, siginfo_t* si, void* unused )
{
   const char* name = NULL;
   switch( signum )
   {
      case SIGABRT: name = "SIGABRT";  break;
      case SIGSEGV: name = "SIGSEGV";  break;
      case SIGBUS:  name = "SIGBUS";   break;
      case SIGILL:  name = "SIGILL";   break;
      case SIGFPE:  name = "SIGFPE";   break;
      case SIGPIPE: name = "SIGPIPE";  break;
   }

   if ( name )
      printf( "Caught signal %d (%s)\n", signum, name );
   else 
      printf( "Caught signal %d\n", signum );
}

void trapSignals()
{
   struct sigaction sa;
   sa.sa_flags = SA_SIGINFO;
   sa.sa_sigaction = abortHandler;
   sigemptyset( &sa.sa_mask );

   sigaction( SIGABRT, &sa, NULL );
   sigaction( SIGSEGV, &sa, NULL );
   sigaction( SIGBUS,  &sa, NULL );
   sigaction( SIGILL,  &sa, NULL );
   sigaction( SIGFPE,  &sa, NULL );
   sigaction( SIGPIPE, &sa, NULL );
}
于 2012-07-13T13:06:15.707 に答える