You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							57 lines
						
					
					
						
							1.1 KiB
						
					
					
				
								#include <stdio.h>
							 | 
						|
								#include "util.h"
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								main(argc, argv, environ)
							 | 
						|
								int argc;
							 | 
						|
								char **argv;
							 | 
						|
								char **environ;
							 | 
						|
								{
							 | 
						|
								    int i;
							 | 
						|
								    char **ep, *prog;
							 | 
						|
								
							 | 
						|
								    prog = util_path_search(argv[0]);
							 | 
						|
								    if (prog == NIL(char)) {
							 | 
						|
									(void) fprintf(stderr, "Cannot find current executable\n");
							 | 
						|
									exit(1);
							 | 
						|
								    }
							 | 
						|
								    util_restart(prog, "a.out", 0);
							 | 
						|
								
							 | 
						|
								    i = recur(10);
							 | 
						|
								    (void) fprintf(stderr, "terminated normally with i = %d\n", i);
							 | 
						|
								
							 | 
						|
								    (void) printf("argc is %d\n", argc);
							 | 
						|
								
							 | 
						|
								    for(i = 0, ep = argv; *ep != 0; i++, ep++) {
							 | 
						|
									(void) printf("%08x (%08x-%08x)\targv[%d]:\t%s\n", 
							 | 
						|
									    ep, *ep, *ep + strlen(*ep), i, *ep);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    i = 0;
							 | 
						|
								    for(i = 0, ep = environ; *ep != 0; ep++, i++) {
							 | 
						|
									(void) printf("%08x (%08x-%08x)\tenviron[%d]:\t%s\n", 
							 | 
						|
									    ep, *ep, *ep + strlen(*ep), i, *ep);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    (void) fprintf(stderr, "returning with status=4\n");
							 | 
						|
								    return 4;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								recur(cnt)
							 | 
						|
								{
							 | 
						|
								    int i, j, sum;
							 | 
						|
								
							 | 
						|
								    if (cnt > 0) {
							 | 
						|
									return recur(cnt-1);
							 | 
						|
								    } else {
							 | 
						|
									sum = 0;
							 | 
						|
									for(j = 0; j < 20; j++) {
							 | 
						|
									    for(i = 0; i < 100000; i++) {
							 | 
						|
									       sum += 1;
							 | 
						|
									    }
							 | 
						|
									    (void) printf("done loop %d\n", j);
							 | 
						|
									}
							 | 
						|
									return sum;
							 | 
						|
								    }
							 | 
						|
								}
							 |