timing.c

来自「让你了解Unix进程间的通信是如何实现的」· C语言 代码 · 共 73 行

C
73
字号
/* include start_time */#include	"unpipc.h"static struct timeval	tv_start, tv_stop;intstart_time(void){	return(gettimeofday(&tv_start, NULL));}doublestop_time(void){	double	clockus;	if (gettimeofday(&tv_stop, NULL) == -1)		return(0.0);	tv_sub(&tv_stop, &tv_start);	clockus = tv_stop.tv_sec * 1000000.0 + tv_stop.tv_usec;	return(clockus);}inttouch(void *vptr, int nbytes){	char	*cptr;	static int	pagesize = 0;	if (pagesize == 0) {		errno = 0;#ifdef	_SC_PAGESIZE		if ( (pagesize = sysconf(_SC_PAGESIZE)) == -1)			return(-1);#else		pagesize = getpagesize();		/* BSD */#endif	}	cptr = vptr;	while (nbytes > 0) {		*cptr = 1;		cptr += pagesize;		nbytes -= pagesize;	}	return(0);}/* end start_time */voidStart_time(void){	if (start_time() == -1)		err_sys("start_time error");}doubleStop_time(void){	double	clockus;	if ( (clockus = stop_time()) == 0.0)		err_sys("stop_time error");	return(clockus);}voidTouch(void *vptr, int nbytes){	if (touch(vptr, nbytes) == -1)		err_sys("touch error");}

⌨️ 快捷键说明

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