[国嵌攻略][077][Linux时间编程]

时间类型

Coordinated Universal Time(UTC):世界标准时间,也就是格林威治时间(Greenwich Mean Time, GMT)。

Calendar Time:日历时间,是用一个标准时间点(1970年1月1日0点)到此时所经过的秒数来表示的时间。

#include <stdio.h>
#include <time.h>
#include <sys/time.h>

void main(){
    //获取日历时间
    time_t ctime;

    time(&ctime);
    printf("ctime is %d\n", ctime);

    //获取微秒时间
    struct timeval mtime;

    gettimeofday(&mtime, NULL);
    printf("mtime is %d.%d\n", mtime.tv_sec, mtime.tv_usec);

    //获取标准时间
    struct tm *gtime;

    gtime = gmtime(&ctime);
    printf("gtime is %02d:%02d\n", gtime->tm_hour, gtime->tm_min);

    //获取本地时间
    struct tm *ltime;

    ltime = localtime(&ctime);
    printf("ltime is %02d:%02d\n", ltime->tm_hour, ltime->tm_min);

    //转换时间格式
    char *atime;

    atime = asctime(ltime);
    printf("atime is %s\n", atime);
}
时间: 2024-10-29 19:08:31

[国嵌攻略][077][Linux时间编程]的相关文章

[国嵌攻略][090][linux网络编程模型]

编程模型 Socket的实质就是一个接口,利用该接口,用户在使用不同的网络协议时,操作函数得以统一.而针对不同协议的差异性操作,则交给了Socket去自行解决. TCP编程模型 UDP编程模型

[国嵌攻略][070-095][Linux编程函数手册]

第1类 时间编程类 1.1 获取日历时间 1.1.1 函数名 time 1.1.2 函数原形 time_t time(time_t *t) 1.1.3 函数功能 返回日历时间 1.1.4 所属头文件 <time.h> 1.1.5 返回值 成功:日历时间失败:-1 1.1.6 参数说明 t:不为空的情况下保存返回值   1.2 获取格林威治时间 1.2.1 函数名 gmtime 1.2.2 函数原形 struct tm *gmtime(const time_t *timep) 1.2.3 函数功

[国嵌攻略][099][Linux内核配置与编译]

为什么要配置内核 基于硬件和软件的需求选出需要的功能,去掉不要的功能. 内核配置的方法 make config:基于文本交互的配置. make menuconfig:基于图形菜单的配置. make menuconfig配置方法 1.菜单项的分类 processor type and features   处理器类型 networking support            网络协议支持 device drivers                设备驱动支持 file systems     

[国嵌攻略][084][信号同步编程]

进程同步 一组并发进程进行相互合作.相互等待,使得各进程按一定的顺序执行的过程称为进程间的同步. 进程同步与进程互斥 进程同步问题的关键在于生产者不需要获取信号量,消费者不需要释放信号量,所以信号量的初值设置为0.但是进程互斥问题中双方都需要获取和释放信号量,所以信号量的初值至少为1. producor.c #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unist

[国嵌攻略][083][信号互斥编程]

信号量分类 1.二值信号量:信号量的值只能或0或1. 2.计数信号量:信号量的初始值大于1. 什么是键值 1.文件通过文件名来打开文件,从而得到文件的标示符:信号量通过键值来打开信号量,从而得到信号量的标示符. 2.在创建信号量的时候指定键值. 指定键值 1.选择任意数值 2.通过函数构造,例如:key_t ftok(char *fname, int id) 键值构造函数 key_t ftok(char *fname, int id) 通过文件名取出内核中对应的数值,然后与项目ID组合形成键值.

[国嵌攻略][109][Linux系统调用]

系统调用 函数实现体在内核空间,提供给应用程序来使用,就是一个系统调用. 工作流程 1.通过软中断(swi)从用户空间切换到内核空间.entry-common.S中的ENTRY(vector_swi)是用来处理软中断的.系统调用通常从r7寄存器中取出系统调用编号. 2.通过系统调用编号从系统调用表中找出调用的系统调用函数.也是是calls.S文件中找出系统调用编号对应的函数. 实现系统调用 1.打开.../kernel/printk.c,添加系统调用函数 void sys_iprint(){ p

[国嵌攻略][050][2440按键中断编程]

程序结构优化 1.把不同的功能放到不同的文件里面 2.一般在bootloader中不使用MMU,所以关掉MMU 按键初始化 1.打开开发板的原理图,找到按键 2.把对应的GPIO配置成中断,对中断源进行初始化 初始化中断控制器 1.SUBMASK和MASK必须要保证没有屏蔽中断,GPIO是不属于子中断,所以不用设置SUBMASK,MODE和Priority保存默认值即可,设置INTMSK(0x4A000008) 2.EINT4_7对应4个中断,分开设置需要设置EINTMASK(0x560000A

[国嵌攻略][137][DM9000网卡驱动编程]

DM9000数据发送 DM9000数据发送函数是在/drivers/net/dm9000.c中的dm9000_start_xmit函数 static int dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev){ //发送数据长度 board_info_t *db = netdev_priv(dev); iow(db, DM9000_TXPLL, (skb->len)>>0); iow(db, DM9000_TXPL

[国嵌攻略][122][按键定制器去抖]

按键抖动 按键所用的开关为机械弹性开关,当机械触点断开.闭合时,由于机械触点的弹性作用,开关不会马上稳定地接通或断开.因而在闭合及断开的瞬间总伴随有一连串的抖动. 按键去抖动的方法主要有两种,一种是硬件电路去抖:另一种就是软件延时去抖.而延时去抖一般又分为两种,一种是for循环等待,另一种是定时器延时.在操作系统中,由于效率方面的原因,一般不允许使用for循环来等待,只能使用定时器. 内核定时器 Linux内核使用struct timer_list来描述一个定时器: struct timer_l