map_zero.c

来自「国内一位牛人自己开发的操作系统」· C语言 代码 · 共 43 行

C
43
字号
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
#include<sys/mman.h>
#include<sys/times.h>

main()
{
	int *p,*p1,fd,i,j,s,k,n;
	long t1,t2;

	if((fd=open("/dev/zero",2))<0){
		printf("\n fd is less than zero %d\n",fd);
		exit(0);
	};
	if(((int)p)==(-1)){
		printf("\n map fail ");
		exit(0);
	}
	printf("\n input n please");
	scanf("%d",&n);
	time(&t1);
	for(k=0;k<n;k++){
		p=(int *)mmap(
			(void *)NULL,
			1024*1024*1024,
			(PROT_READ|PROT_WRITE),
			MAP_PRIVATE,
			fd,
			0);
		p1=p;
		for(s=0,i=0;i<100;i++)
			for(j=0;j<1000;j++,p=p+1024){
				*p=1;s=(*p);
			}
		munmap(p1,1024*1024*1024);
	}
	time(&t2);
	close(fd);
	printf("\n time length is %d",t2-t1);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?