37 lines
		
	
	
	
		
			843 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			843 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
 | 
						|
 * See the copyright notice in the ACK home directory, in the file "Copyright".
 | 
						|
 */
 | 
						|
char rcs_id[] = "$Header$" ;
 | 
						|
 | 
						|
main(argc,argv) char **argv ; {
 | 
						|
	int child, waitchild ;
 | 
						|
	int status ;
 | 
						|
	child=fork() ;
 | 
						|
	if ( child== -1 ) {
 | 
						|
		printf("fork returned -1\n") ;
 | 
						|
		return 1 ;
 | 
						|
	}
 | 
						|
	if ( child ) {
 | 
						|
	/* The parent */
 | 
						|
		/* printf("childno %d\n",child ) ; */
 | 
						|
		do {
 | 
						|
			waitchild= wait(&status ) ;
 | 
						|
			/* printf("Child %d, status 0x%x\n",waitchild,status) ;*/
 | 
						|
			if ( waitchild== -1 ) {
 | 
						|
				printf("No children\n") ;
 | 
						|
				return 1 ;
 | 
						|
			}
 | 
						|
		} while ( waitchild!=child ) ;
 | 
						|
		if ( argc<=1 && status != (8<<8) ) {
 | 
						|
			printf("incorrect status return\n") ;
 | 
						|
			return 2 ;
 | 
						|
		}
 | 
						|
	} else {
 | 
						|
		/* The child */
 | 
						|
		if ( argc>1 ) pause() ;
 | 
						|
		return 8 ;
 | 
						|
	}
 | 
						|
	printf("fork/wait ok\n") ;
 | 
						|
	return 0 ;
 | 
						|
}
 |