📄 times.def
字号:
This file is times.def, from which is created times.c.It implements the builtin "times" in Bash.Copyright (C) 1987-2009 Free Software Foundation, Inc.This file is part of GNU Bash, the Bourne Again SHell.Bash is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.Bash is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with Bash. If not, see <http://www.gnu.org/licenses/>.$PRODUCES times.c$BUILTIN times$FUNCTION times_builtin$SHORT_DOC timesDisplay process times.Prints the accumulated user and system times for the shell and all of itschild processes.Exit Status:Always succeeds.$END#include <config.h>#if defined (HAVE_UNISTD_H)# ifdef _MINIX# include <sys/types.h># endif# include <unistd.h>#endif#include <stdio.h>#include "../bashtypes.h"#include "../shell.h"#include <posixtime.h>#if defined (HAVE_SYS_TIMES_H)# include <sys/times.h>#endif /* HAVE_SYS_TIMES_H */#if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE)# include <sys/resource.h>#endif#include "common.h"/* Print the totals for system and user time used. */inttimes_builtin (list) WORD_LIST *list;{#if defined (HAVE_GETRUSAGE) && defined (HAVE_TIMEVAL) && defined (RUSAGE_SELF) struct rusage self, kids; USE_VAR(list); if (no_options (list)) return (EX_USAGE); getrusage (RUSAGE_SELF, &self); getrusage (RUSAGE_CHILDREN, &kids); /* terminated child processes */ print_timeval (stdout, &self.ru_utime); putchar (' '); print_timeval (stdout, &self.ru_stime); putchar ('\n'); print_timeval (stdout, &kids.ru_utime); putchar (' '); print_timeval (stdout, &kids.ru_stime); putchar ('\n');#else# if defined (HAVE_TIMES) /* This uses the POSIX.1/XPG5 times(2) interface, which fills in a `struct tms' with values of type clock_t. */ struct tms t; USE_VAR(list); if (no_options (list)) return (EX_USAGE); times (&t); print_clock_t (stdout, t.tms_utime); putchar (' '); print_clock_t (stdout, t.tms_stime); putchar ('\n'); print_clock_t (stdout, t.tms_cutime); putchar (' '); print_clock_t (stdout, t.tms_cstime); putchar ('\n');# else /* !HAVE_TIMES */ USE_VAR(list); if (no_options (list)) return (EX_USAGE); printf ("0.00 0.00\n0.00 0.00\n");# endif /* HAVE_TIMES */#endif /* !HAVE_TIMES */ return (sh_chkwrite (EXECUTION_SUCCESS));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -