【Linux_Unix系统编程】Chapter10 时间
chapter10 时间
1:真实时间:度量这一时间的起点有二:(1)某个标准点;(2)进程生命周期内的某个固定时点(通常为程序启动)
2:进程时间:一个进程所使用的CPU时间总量,适用于对程序,算法性能的检查或优化。
10.1 日历时间(calendar Time)
日历时间存储于类型为time_t的变量中。
系统调用gettimeofday(),可于tv指向的缓冲区中返回日历时间
#include <sys/time.h>
int gettimeofday(struct timeval *tv, struct timezone *tz);
参数tv指向的结构:
struct timeval
{
time_t tv_sec; // 从00:00:00 1 Jan 1970 UTC
suseconds_t tv_usec; //微妙
}
time()系统调用返回来自Epoch以来的秒数(和函数gettimeofday()所返回的tv参数中tv_sec字段的数值相同).
#include <time.h>
time_t time(time_t *timep);
10.2 时间转换函数
10.2.1 将time_t 转换为可打印格式
#include <time.h>
char *ctime(const time_t *timep);
返回一个26字节的字符串,格式:Wed Jun 8 14:22:34 2011
10.2.2 time_t和分解时间之间的转换
函数gmtime()和localtime()可将一time_t值转换为一个所谓的分解时间。分解时间被置于一个经由静态分配的结构中,其地址则作为函数结果返回。
#include<time.h>
struct tm *gmtime(const time_t *timep);
struct tm *localtime(const time_t *timep);
函数mktime()将一个本地时区的分解时间翻译为time_t值,并将其作为函数结果返回。
#include <time.h>
time_t mktime(struct tm *timeptr);
10.2.3分解时间和打印格式之间的转换
从分解时间转换为打印格式
#include <time.h>
char *asctime(const struct tm *timeptr);
当把一个分解时间转化成打印格式是,函数strftime()可以提供更为精确的控制。令timeptr指向分解时间,strftime()会将以null结尾,由日期和时间组成的相应字符串置于outstr所指向的缓冲区中。
#include <time.h>
size_t strftime(char *outstr, size_t maxsize, const char *format, const struct tm *timeptr);
将打印格式时间转换为分解时间
函数strptime()是strftime的逆向函数
10.3 时区
时区定义
/usr/share/zoncinfo
系统的本地时间由时区文件/etc/localtime定义,通常链接到/usr/share/zoneinfo下的一个文件。
为程序指定时区:
10.4 地区(Locale)
为程序设定地区
#include <locale.h>
char *setlocale(int category, const char *locale);
10.5 更新系统时钟
settimeofday()和adjtime().
#define _BSD_SOURCE
#include <sys/time.h>
int settimeofday(const struct timeval *tv, const struct timezon *tz);
10.6 软件时钟
10.7 进程时间
进程时间是进程创建后使用的CPU时间数量。
系统调用times(),检索进程时间信息,并把结果通过buf指向的结构体返回。
#include <sys/times.h>
clock_t times(struct tms *buf);
函数clock()提供了一个简单的接口用于取得进程时间。它返回一个值描述了调用进程使用的总的CPU时间(包括用户和系统)
#include <time.h>
clock_t clock(void);
【Linux_Unix系统编程】Chapter10 时间的更多相关文章
- 【Linux_Unix系统编程】chapter6 进程
chapter6 进程 重点关注进程虚拟内存的布局及内容.6.1 进程和程序 进程(process)是一个可执行程序(program)的实例. 程序是包含了一系列信息的文件,这些信息描述了如何在运行时 ...
- 【Linux_Unix系统编程】Chapter4 文件IO
Chapter4 文件IO 4.1 概述 文件描述符 == Windows的句柄 标准文件描述符: 0 标准输入 STDIN_FILENO stdin 1 标准输出 STDOUT_FILENO std ...
- 【Linux_Unix系统编程】Chapter9 进程凭证
chapter9 进程凭证 每个进程都有一套用数字表示的用户ID(UID)和组ID(GID).有时也将这些ID称子为进程凭证. 1:实际用户ID和实际组ID 2:有效用户ID和有效组ID 3:保存的s ...
- 【Linux_Unix系统编程】Chapter8 用户和组
chapter8 用户和组 8.1 密码文件 /etc/passwd 每行都包含7个字段,之间用冒号分割,如下所示: mtk:x:1000:100:Michael:/home/mtk:/bin/bas ...
- 【Linux_Unix系统编程】chapter7 内存分配
Chapter7 内存分配本章将用于在堆或者栈上分配内存的函数.7.1 在堆上分配内存 通常将堆的当前的内存边界称为"program break" 7.1.1 调整program ...
- 【Linux_Unix系统编程】chapter5 深入探究文件IO
Chapter5 深入探究文件I/O 本章节将介绍另一个与文件操作相关的系统调用:多用途的fcntl(),并展示其应用之一读取和设置打开文件的状态标志. 5.1 原子操作和竞争条件 所有系统调用都是以 ...
- 《Linux/Unix系统编程手册》 时间子系统
Linux下操作系统编程有两本经典APUE即<Advanced Programming in the UNIX Environment>和TLPI<The Linux Program ...
- linux系统编程之文件与IO(七):时间函数小结
从系统时钟获取时间方式 time函数介绍: 1.函数名称: localtime 2.函数名称: asctime 3.函数名称: ctime 4.函数名称: difftime 5.函数名称: gmtim ...
- Linux系统编程温故知新系列 --- 01
1.大端法与小端法 大端法:按照从最高有效字节到最低有效字节的顺序存储,称为大端法 小端法:按照从最低有效字节到最高有效字节的顺序存储,称为小端法 网际协议使用大端字节序来传送TCP分节中的多字节整数 ...
随机推荐
- screen 命令 http://man.linuxde.net/screen
http://man.linuxde.net/screen -A 将所有的视窗都调整为目前终端机的大小. -d <作业名称> 将指定的screen作业离线. -h <行数> 指 ...
- .Net EF Core数据库使用SQL server 2008 R2分页报错How to avoid the “Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement.”
一. 问题说明 最近.Net EF core 程序部署到服务器,服务器数据库安装的是SQL server 2008 R2,我本地用的的是SQL server 2014,在用到分页查询时报错如下: H ...
- ios开发过程中描述文件(provisioning profile)过期导致ios无法正常安装的处理办法
1.登录开发者中心,重新编辑描述文件,获得最新的描述文件.(如果对应的P12文件也过期,需要同时下载最新的p12文件).----该步骤需要有权限的人才能操作. 2.下载最新的描述文件和p12文件(如果 ...
- Android Kernel save defalut config
/********************************************************************************* * Android Kernel ...
- js 获取客户端mac地址
js 获取客户端mac地址 javascript获取客户端网卡MAC地址和IP地址和计算机名 nodesj如何获得客户端的mac地址呢? 浏览器获取MAC地址 不限浏览器的mac地址取得的几种办法 I ...
- 网络流--最大流ek模板
标准大白书式模板,代码简单但由于效率并不高,所以并不常用,就是这样 #include<stdio.h> #include<string.h> #include<queue ...
- test20190320 全连(fc)
题意 全连(fc) [题目背景] 还记得若干年前那段互相比较<克罗地亚狂想曲>的分数的日子吗? [题目描述] E.Space 喜欢打音游. 但是他技术不好,总是拿不到全连(Full Com ...
- JS前端数据多条件筛选(商品搜索)
有时候也会需要在前端进行数据筛选,增强交互体验.当数据可用的筛选条件较多时,把逻辑写死会给后期维护带来很大麻烦.下面是我自己写的一个简单的筛选器,筛选条件可以根据数据包含的字段动态设置. 仿照京东的筛 ...
- 不用webservice wcf提供服务,用Rest更轻量
从2005年开始就开始有基于服务的开发方式,到08年时候 微软和sun等公司都已经提供了很多基于服务的开发框架 . 微软 .net 平台的基于服务的框架主要有:.NET Remoting.webser ...
- tomcat源码阅读之日志记录器(Logger)
UML图: 1.Logger接口中定义了日志的级别:FATAL.ERROR.WARNING.INFORMATION.DEBUG,通过接口函数getVerbosity获取日志级别,setVerbosit ...