vtimes.c

来自「操作系统SunOS 4.1.3版本的源码」· C语言 代码 · 共 68 行

C
68
字号
#if !defined(lint) && defined(SCCSIDS)static	char sccsid[] = "@(#)vtimes.c 1.1 92/07/30 SMI"; /* from UCB 4.1 83/05/31 */#endif#include <sys/time.h>#include <sys/resource.h>/* * Backwards compatible vtimes. */struct vtimes {	int	vm_utime;		/* user time (60'ths) */	int	vm_stime;		/* system time (60'ths) */	/* divide next two by utime+stime to get averages */	unsigned vm_idsrss;		/* integral of d+s rss */	unsigned vm_ixrss;		/* integral of text rss */	int	vm_maxrss;		/* maximum rss */	int	vm_majflt;		/* major page faults */	int	vm_minflt;		/* minor page faults */	int	vm_nswap;		/* number of swaps */	int	vm_inblk;		/* block reads */	int	vm_oublk;		/* block writes */};vtimes(par, chi)	register struct vtimes *par, *chi;{	struct rusage ru;	if (par) {		if (getrusage(RUSAGE_SELF, &ru) < 0)			return (-1);		getvtimes(&ru, par);	}	if (chi) {		if (getrusage(RUSAGE_CHILDREN, &ru) < 0)			return (-1);		getvtimes(&ru, chi);	}	return (0);}staticgetvtimes(aru, avt)	register struct rusage *aru;	register struct vtimes *avt;{	avt->vm_utime = scale60(&aru->ru_utime);	avt->vm_stime = scale60(&aru->ru_stime);	avt->vm_idsrss = ((aru->ru_idrss+aru->ru_isrss) / 100) * 60;	avt->vm_ixrss = aru->ru_ixrss / 100 * 60;	avt->vm_maxrss = aru->ru_maxrss;	avt->vm_majflt = aru->ru_majflt;	avt->vm_minflt = aru->ru_minflt;	avt->vm_nswap = aru->ru_nswap;	avt->vm_inblk = aru->ru_inblock;	avt->vm_oublk = aru->ru_oublock;}staticscale60(tvp)	register struct timeval *tvp;{	return (tvp->tv_sec * 60 + tvp->tv_usec / 16667);}

⌨️ 快捷键说明

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