56 lines
		
	
	
		
			880 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			880 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* test 12 */
 | 
						|
 | 
						|
/* Copyright (C) 1987 by Martin Leisner. All rights reserved. */
 | 
						|
/* Used by permission. */
 | 
						|
 | 
						|
#include <sys/types.h>
 | 
						|
#include <sys/wait.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <unistd.h>
 | 
						|
#include <stdio.h>
 | 
						|
 | 
						|
#define NUM_TIMES	1000
 | 
						|
 | 
						|
int errct = 0;
 | 
						|
 | 
						|
_PROTOTYPE(int main, (void));
 | 
						|
_PROTOTYPE(void quit, (void));
 | 
						|
 | 
						|
int main()
 | 
						|
{
 | 
						|
  register int i;
 | 
						|
  int k;
 | 
						|
 | 
						|
  printf("Test 12 ");
 | 
						|
  fflush(stdout);		/* have to flush for child's benefit */
 | 
						|
 | 
						|
  system("rm -rf DIR_12; mkdir DIR_12");
 | 
						|
  chdir("DIR_12");
 | 
						|
 | 
						|
  for (i = 0; i < NUM_TIMES; i++) switch (fork()) {
 | 
						|
	    case 0:	exit(1);	  		break;
 | 
						|
	    case -1:
 | 
						|
		printf("fork broke\n");
 | 
						|
		exit(1);
 | 
						|
	    default:	wait(&k);	  		break;
 | 
						|
	}
 | 
						|
 | 
						|
  quit();
 | 
						|
  return(-1);			/* impossible */
 | 
						|
}
 | 
						|
 | 
						|
void quit()
 | 
						|
{
 | 
						|
 | 
						|
  chdir("..");
 | 
						|
  system("rm -rf DIR*");
 | 
						|
 | 
						|
  if (errct == 0) {
 | 
						|
	printf("ok\n");
 | 
						|
	exit(0);
 | 
						|
  } else {
 | 
						|
	printf("%d errors\n", errct);
 | 
						|
	exit(1);
 | 
						|
  }
 | 
						|
}
 |