xref: /csrg-svn/usr.bin/f77/libU77/fork_.c (revision 2541)
1*2541Sdlw /*
2*2541Sdlw char id_fork[] = "@(#)fork_.c	1.1";
3*2541Sdlw  *
4*2541Sdlw  * fork a copy of this process
5*2541Sdlw  *
6*2541Sdlw  * calling sequence:
7*2541Sdlw  *	integer fork
8*2541Sdlw  *	ierror = fork()
9*2541Sdlw  * where:
10*2541Sdlw  *	ierror will be	- child pid if parent and successful
11*2541Sdlw  *			- 0 if child
12*2541Sdlw  *			- -errno if unsuccessful
13*2541Sdlw  */
14*2541Sdlw 
15*2541Sdlw #include	"../libI77/fiodefs.h"
16*2541Sdlw 
17*2541Sdlw extern int errno;
18*2541Sdlw 
19*2541Sdlw long fork_()
20*2541Sdlw {
21*2541Sdlw 	long i;
22*2541Sdlw 
23*2541Sdlw 	for (i = 0; i < MXUNIT; i++)
24*2541Sdlw 		flush_(&i);
25*2541Sdlw 	i = (long)fork();
26*2541Sdlw 	if (i < 0)
27*2541Sdlw 		return((long)(-errno));
28*2541Sdlw 	return(i);
29*2541Sdlw }
30