【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分节中的多字节整数 ...
随机推荐
- HDU 4862
http://acm.hdu.edu.cn/showproblem.php?pid=4862 #include <iostream> #include <cstdio> #in ...
- fork调用实验-缓冲区相关
先看下面一段代码: #include <unistd.h> #include <stdio.h> ; char buf[] = "a write to stdout\ ...
- Buildroot Qt 5
/********************************************************************************* * Buildroot Qt 5 ...
- Softmax回归介绍
把输入值当成幂指数求值,再正则化这些结果值.这个幂运算表示,更大的证据对应更大的假设模型(hypothesis)里面的乘数权重值.反之,拥有更少的证据意味着在假设模型里面拥有更小的乘数系数.假设模型里 ...
- 在python中的使用
操作步骤: 1. 连接数据库,生成数据库连接对象 conn = pymongo.MongoClient('localhost',27017) 2. 选择要操作的数据库,生成数据库对象 (__setit ...
- HPU 1476: 括号括号
1476: 括号括号 时间限制: 3 Sec 内存限制: 128 MB 提交: 305 解决: 61 统计 题目描述 小明今年上大学,在大学里发现有很多同学都女朋友,两人整天都在一起腻歪,小明看到后感 ...
- Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息
一个工程师团队使用 Slack 进行团队协作比 QQ / 微信流的效率高多啦.除了基本的 IM 之外,它的扩展性也是非常重要的一点. 本文介绍 Slack 的开发入门:Incoming Webhook ...
- 使用 WPF 开发一个 Windows 屏幕保护程序
最近有小伙伴问我如何可以让 Windows 静置一段时间不操作之后,显示一个特殊的界面.我想了想,屏幕保护程序可以做到这一点,而且,屏幕保护程序的开发也是非常简单的. 本文将介绍如何为 Windows ...
- WPF开源界面库及控件
WPF开源项目 WPF有很多优秀的开源项目,我以为大家都知道,结果,问了很多人,其实他们不知道.唉,太可惜了! 先介绍两个比较牛逼的界面库 1.MaterialDesignInXamlToolkit ...
- Microsoft - Get Course Order
// "static void main" must be defined in a public class. public class Main { public static ...