github.com/afumu/libc@v0.0.6/musl/src/signal/signal.c (about)

     1  #include <signal.h>
     2  #include "syscall.h"
     3  
     4  void (*signal(int sig, void (*func)(int)))(int)
     5  {
     6  	struct sigaction sa_old, sa = { .sa_handler = func, .sa_flags = SA_RESTART };
     7  	if (__sigaction(sig, &sa, &sa_old) < 0)
     8  		return SIG_ERR;
     9  	return sa_old.sa_handler;
    10  }
    11  
    12  weak_alias(signal, bsd_signal);
    13  weak_alias(signal, __sysv_signal);