|
|
1.1 root 1: /*
2: * Copyright (c) 1985, 1989 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that: (1) source distributions retain this entire copyright
7: * notice and comment, and (2) distributions including binaries display
8: * the following acknowledgement: ``This product includes software
9: * developed by the University of California, Berkeley and its contributors''
10: * in the documentation or other materials provided with the distribution
11: * and in all advertising materials mentioning features or use of this
12: * software. Neither the name of the University nor the names of its
13: * contributors may be used to endorse or promote products derived
14: * from this software without specific prior written permission.
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18: */
19:
20: #if defined(LIBC_SCCS) && !defined(lint)
21: static char sccsid[] = "@(#)signal.c 5.5 (Berkeley) 6/1/90";
22: #endif /* LIBC_SCCS and not lint */
23:
24: /*
25: * Almost backwards compatible signal.
26: */
27: #include <signal.h>
28:
29: sigset_t _sigintr; /* shared with siginterrupt */
30:
31: sig_t
32: signal(s, a)
33: int s;
34: sig_t a;
35: {
36: struct sigaction sa, osa;
37:
38: sa.sa_handler = a;
39: sigemptyset(&sa.sa_mask);
40: sa.sa_flags = 0;
41: if (!sigismember(&_sigintr, s))
42: sa.sa_flags |= SA_RESTART;
43: if (sigaction(s, &sa, &osa) < 0)
44: return (BADSIG);
45: return (osa.sa_handler);
46: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.