linux下C++利用socket获取网络时间并更新到本地
WT与RTC
网上自行搜索了解两者区别:
系统时间(WT, Wall Time):由Linux系统软件维持的时间。
RTC(Real-Time Clock):翻译过来是实时时钟芯片。
对于一台安装了操作系统的服务器来说,操作系统和服务器硬件本身都在记录和更新当前的时间,也就是说系统时间和RTC时间是两套独立的计时机制。简单的说就是——RTC时间才是真正持续更新,而操作系统则是只有在系统启动以后才会持续更新,在操作系统关闭或重启期间,甚至服务器下电期间,整个服务器的时间就依赖于RTC了。
NTP服务器列表
域名
IP地址
time-a.nist.gov
129.6.15.28
time-b.nist.gov
129.6.15.29
time-a.timefreq.bldrdoc.gov
132.163.4.101
time-b.timefreq.bldrdoc
132.163.4.102
time-c.timefreq.bldrdoc.gov
132.163.4.103
utcnist.colorado.edu
128.138.140.44
...
bitbake.bb文件解析
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220 ...
JAVA 学习笔记(一)
JAVA基本语法
编写JAVA程序时,应注意以下五点:
大小写敏感:不做过多解释,比如hello和Hello是不同的
类名:对所有类来说,类名的首字母应该大写。建议采用“驼峰命名法”,就是说如果由若干单词组成的类名,每个单词的首字母应该大写,比如CuteFlyingPig。
方法名:所有的方法名都应该以小写字母开头。同样采用“驼峰”命名法,比如pigCanFlay();
源文件名:源文件名必须和类名相同。当保存文件时,应该使用类名作为文件名保存(万分注意:JAVA大小写敏感!JAVA大小写敏感!JAVA大小写敏感!),文件后缀名为.java。否则,文件名和类名不一致会导致编译错误。
主方法入口:左右的Java程序都是由public static void main(String[] args)方法开始执行的。
Java 对象和类
Java作为一种面向对象语言,支持以下基本概念:多态、继承、封装、抽象、类、对象、实例、方法、重载等。
源文件声明规则
当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则:
一个源文件智能有一个publi ...
Java 关键字汇总
下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称。
类别
关键字
说明
访问控制
private
私有的
protected
受保护的
public
公共的
类、方法和变量修饰符
abstract
声明抽象
class
类
extends
扩充,继承
final
最终值,不可改变的
implements
实现(接口)
interface
接口
native
本地,原生方法(非 Java 实现)
new
新,创建
static
静态
strictfp
严格,精准
synchronized
线程,同步
transient
短暂
volatile
易失
程序控制语句
break
跳出循环
case
定义一个值以供 switch 选择
continue
继续
default
默认
do
运行
else
否则
for
循环
if
如果
instanceof
实例
return
返回
switch
根据值选择执行
while
循环
错误处理
asse ...
CSS浏览器前缀兼容写法归纳整理
Vendor prefix — 浏览器引擎前缀,是一些放在CSS属性前的小字符串,用来确保这种属性只在特定的浏览器渲染引擎下才能识别和生效。谷歌浏览器和Safari浏览器使用的是 WebKit 渲染引擎,火狐浏览器使用的是 Gecko 引擎,Internet Explorer 使用的是 Trident 引擎,Opera以前使用 Presto 引擎,后改为 WebKit 引擎。一种浏览器引擎里一般不实现其它引擎前缀标识的CSS属性,但由于以 WebKit 为引擎的移动浏览器相当流行,火狐等浏览器在其移动版里也实现了部分 WebKit 引擎前缀的CSS属性。
1. 浏览器引擎前缀(Vendor Prefix)有哪些?
-moz- /* 火狐等使用Mozilla浏览器引擎的浏览器 */
-webkit- /* Safari, 谷歌浏览器等使用Webkit引擎的浏览器 */
-o- /* Opera浏览器(早期) */
-ms- /* Internet Explorer (不一定) */
2. 为什么需要浏览器引擎前缀(Vendor P ...
linux中的dmesg和addr2line命令在没有core文件时定位core dump段错误 (核心已转储) 问题
dmesg命令的用途
dmesg命令用会把开机信息存到ring bufer中, 形成一个缓冲, 免得你我来不及看。 在root权限下, 可以用dmesg -c来清除这个消息。 单纯的一个dmesg命令则是用来输出这些记录信息的。
功能说明:显示开机信息。
语 法:dmesg \[-cn\]\[-s <缓冲区大小>\]
补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
参 数:
-c 显示信息后,清除ring buffer中的内容。
-s<缓冲区大小> 预设置为8196,刚好等于ring buffer的大小。
-n 设置记录信息的层级
addr2line命令使用
Addr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。这种功能对于将跟踪地址转换成更有意义的内容来说简直是太棒了。
使用Addr2line 工具,就可以判断出 ...
javascript浏览器禁止用户放大缩小的五种方法
近期在AGL(Automotive Grade Linux)上做一个基于chrome的网页,比较烦的是用了好多方案都不能禁止用户的双指触控放大缩小的动作,最后成功解决了该问题,今天在这里分享一下成功和失败的方法,之所以列出失败的方法,是因为对我没用的,可能对你们有用。
记住一点,用户触发浏览器页面缩放的行为是针对浏览器的操作,你想在H5页面文件里里控制禁止浏览器缩放是越权行为。如果真的想,就要牺牲一些多指触控的功能,用户在执行缩放动作时肯定是多点触控触发的事件。
方案一:设置对应浏览器的启动参数来禁止用户缩放页面
这种方案在自建平台上,自选的指定浏览器上效果是可以的,但是不推荐,比如chrome主要通过设置* { touch-acion : none }来实现禁用缩放的方法,具体方案可自行搜索,我也没有进行相关测试。
touch-acion的参数意义如下:
auto:默认值。浏览器允许一些手势(touch)操作在设置了此属性的元素上,例如:对视口(viewport)平移、缩放等操作。
none:禁止触发默认的手势操作。
pan-x:可以在父级元素(the nea ...
C++的单例模式与线程安全单例模式(懒汉/饿汉)
单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。
单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显的很不优雅。 使用全局对象能够保证方便地访问实例,但是不能保证只声明一个对象——也就是说除了一个全局实例外,仍然能创建相同类的本地实例。
教科书里的单例模式
我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。例如:
class singleton
{
protected:
singleton(){}
private:
static singlet ...
C++中std::lock_guard 使用
std::lock_guard 简介
这个类是一个互斥量的包装类,用来提供自动为互斥量上锁和解锁的功能,简化了多线程编程。
互斥类的最重要成员函数是lock()和unlock()。在进入临界区时,执行lock()加锁操作,如果这时已经被其它线程锁住,则当前线程在此排队等待。退出临界区时,执行unlock()解锁操作。更好的办法是采用”资源分配时初始化”(RAII)方法来加锁、解锁,这避免了在临界区中因为抛出异常或return等操作导致没有解锁就退出的问题。极大地简化了程序员编写mutex相关的异常处理代码。C++11的标准库中提供了std::lock_guard类模板做mutex的RAII。
std::lock_guard类的构造函数禁用拷贝构造,且禁用移动构造。std::lock_guard类除了构造函数和析构函数外没有其它成员函数。
用法如下:
#include <mutex>
std::mutex kMutex;
void function() {
// 构造时自动加锁
std::lock_guard<std::mutex> (kM ...
习立风对话尼采:悲剧里的独行者,独行者里的超人
凡能吸入我著作中气息的人,他就知道,这是高岗上的空气,是使人精神焕发的。一个人必须加以培养以适应这种空气,否则就会有不少受寒的危险。
——题记(尼采语录)
有人曾说,“哲学是人生观的学问,哲学是心灵的完整,哲学是生命的诗”。今晨我在杨柳岸痴迷于《尼采生存哲学》,任清风摇动柳枝,任柳枝拂过面庞,任碧波微荡,任机灵的香樟树落花蹦跶跶地化作书签,而我,看到了十岁的弗里德里希·威廉·尼采这个神情忧郁的小男孩正朝我走来。
“你好,查拉图斯特拉,你的神情为何如此沮丧?你的诗作为何总是在说父亲的坟墓、晚祷的钟声、生命的无常、幸福的虚幻?你总说,却闭口不谈这快意人生?”
“哦,树叶从树上飘零,终被秋风扫走。生命和他的美梦,终将灰土尘垢。我是一个悲观的人,可我本有一个幸福欢快的家庭。可五年前,我那和蔼可亲的爸爸就去世了。可你知道吗?有一天,我做了一个梦,四处奏响了古希腊的悲剧哀乐,我爸爸的坟墓打开了,爸爸穿着整齐的牧师袍子,在风中向我们的教堂中走来,他抱起了一个孩子,对,我看不清那个孩子的脸,爸爸抱着那个孩子走进了坟墓,墓又慢慢地合上了。几天后,仅仅几天后,我的弟弟就死了,我清晰地记得他的面庞,我也 ...