系统调用之sys_time

asmlinkage long sys_time(time_t __user *tloc); 这个函数从当前kernel 获得当前的秒数,返回给用户空间
其源码分析如下:
SYSCALL_DEFINE1(time, time_t __user *, tloc)
{
	#通过timekeeper 获得当前的秒数
	time_t i = get_seconds();
	#如果用户空间提供的buf不为null的话,则通过put_user 将秒数写到用户空间的buf中
	if (tloc) {
		if (put_user(i,tloc))
			return -EFAULT;
	}
	force_successful_syscall_return();
	#同时系统调用返回当前的秒数
	return i;
}
通过timekeeper 获得当前系统秒数的实现如下:
unsigned long get_seconds(void)
{
	struct timekeeper *tk = &tk_core.timekeeper;

	return tk->xtime_sec;
}
可见秒数是保存在timekeeper中的xtime_sec中的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值