c++调用 lua 错误集锦

一、 luaL_dofile(): cannot open ./lib.lua: No such file or directory

问题原因

运行应用的目录和 lua 文件不在同一个目录,.lua 文件所在的目录是当前所在的目录而不是程序所在目录。

app 在当前目录下的 debug 目录下,在当前目录下执行./debug/app 可以成功读取到 lib.lua,但是在 debug 目录下执行./app 就会报错。

阅读更多

CentOS 6.x 升级内核到 4.4

准备玩一下 docker,但是发现对内核要求比较高,3.1 以上,而 CentOS 6.x 默认内核版本是 2.6 。

习惯了 6 也不想换成 7,所以最后只能把内核升级了,升级上来也只需要简单的两步操作。

1. 安装 ELRepo

内核的仓库地址,这个可在 https://elrepo.org/tiki/tiki-index.php 找到。

如果 rpm 命令下载失败,可以手动进入上面的网页中下载下来,然后离线安装。

阅读更多

git alias 导致的权限错误

习惯了 svn 的 svn co,觉得 git checkout 不方便遂通过 git 的 alias 把 checkout 重命名为 co 。 这个操作以前一直都是相安无事,今天在一台新机器上运行时遇到以下问题:

网上找了半天没有找到解决方案,并且发现不使用 ... 阅读更多

面试题:转换十六进制字符串到十六进制数据

前几天面试时候遇到的问题:

给定一个十六进制字符串"AB",转换成十六进制的整数 0xab 输出。

临时接到的面试通知,赶场子过去一坐下就给个题目,说实话面试了一两个星期是第一次做这方面的面试题。没有思想准备,当时脑海里就闪过两个念头,一个是左移,一个是直接进制转换。

阅读更多

vector 中 reserve 和 resize 的区别

reserve 方法用来给 vector 预留空间,预留的空间只会改变 capacity 的大小,不会改变 size 大小。 resize 方法表示重新调整数组大小,capacity 和 size 都会改变。 使用 reserve 后,不能直接使用下标来增加元素,虽然内存是已经分配了直接使用不会报错,但是直接通过下标来复制会导 ... 阅读更多

使用 Github Pages 部署静态网页

一、关于 Github Pages github pages 是 github 提供的静态文件托管服务,支持部署仓库内的静态页面文件,特别适合 hexo 、 jekyll 以及 gitbook 等应用部署网站使用。 Github Pages 有以下几个优点: 完全免费 支持自定义域名 支持 HTTPS 免备案 其实国内像 gi ... 阅读更多

几个 golang 面试题及解析

一、以下代码的输出内容为

答案

解析 考查 defer 和 panic 组合的情况,在有 panic 时,会先执行 defer 然后再把恐慌传递出去。 更多相关内容可查看 defer 常见 ... 阅读更多

多态的原理:vptr 指针和 vtable 虚函数表

多态是 C++中的重要内容,也是设计模式的基础。

形成多态的几个基本条件为:

  • 继承和虚函数
  • 父类对象指向子类对象

多态形成的原理就是 vptr 指针和 vtable 虚函数表,当一个类中有虚函数时,编译器就会自动生成虚函数表,并生成一个 vptr 指针指向这个虚函数表。调用虚函数的时候,会通过这个 vptr 指针找到相应的虚函数表,然后再定位到对应的函数,以此来调用形成多态。

阅读更多

linux netstat 命令用法

netstat 是控制台命令, 是一个监控 TCP/IP 网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。 Netstat 用于显示与 IP 、 TCP 、 UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

阅读更多

linux 和 windows 双系统时间不同步问题

一、问题描述 安装 linux 双系统后,只要进入 linux 系统,windows 的系统时间就会错误。 二、解决方案