Beispiel #1
0
int main(void)
{
  int num,i;
  printf("input a positive number:" );
  scanf("%d",&num);
  printf("all the primes <= %d:\n",num);
  for(i=2; i<=num; i++)
  if(isprimer(i))
  printf("%d\t",i );
  printf("\n");
  return 0;
}
Beispiel #2
0
int main(){
	int* p = mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,0,0);
	int id = 1;
	int a,b;
	while(1){
		if(id == 1){
			a = 1;
			b = 5000;
		}
		if(id == 2){
			a = 5000;
			b = 10000;
		}
		if(fork()){
			if(++id>2){
				int fd = open("primer.dat",
						O_RDWR|O_CREAT,0666);
				if(fd == -1){
					printf("open error:%m\n");
					exit(-1);
				}
				int* q = p;
				while(q != NULL){
					printf("%d\n",*q++);
					//write(fd,*q++,sizeof(int));
				}
				close(fd);
			}
		}else{
			int i;
			int r;
			int* q = p;
			for(i = a ; i < b ; i ++){
				r = isprimer(i);
				if(r == 1){
					*q++ = i;	
				}
			}
			printf("pid:%d task complete!\n",getpid());
			exit(0);
		}
	}
	return 0;
}