李迟的专栏

何日抱娃归家去,山头斜照读牛经。文章可能会更新,以www.latelee.org内容为准。...

遇到一个Linux系统文件被删除后仍占用磁盘的问题

在使用Linux系统中,有时候发现明明已经删除了大量的文件(特别是日志文件),但用du查看磁盘,空间依然没有减少,这种非常奇怪的问题,最近遇到了。本文描述一下前因后果,并给出一些个人看法。 起因 最近项目准备上线,同事查了服务器磁盘使用情况,发现隔了几天磁盘空间就减少几百兆,叫我查一下。 环境描...

2019-08-02 13:18:18

阅读数 75

评论数 0

一台CentOS云主机更改源的记录

某云服务商的一台CentOS云主机,使用默认源,安装软件非常慢,于是将源改为国内镜像,经过一番折腾,最后成功了。本文记录其过程。 过程 由于有使用阿里云的经历,于是选择阿里云的源,在/etc/yum.repos.d目录中输入: wget http://mirrors.aliyun.com...

2019-05-27 22:07:22

阅读数 50

评论数 0

程序分身2:参考busybox方式实现

背景 约半年前,曾经写过有关程序分身的文章,最近心血来潮翻看busybox的代码,发现原来实现的方式有点笨拙。如busybox名称所示,它将很多的程序都集成到一个程序(box)中,所以非常“busy”。笔者从事多年的嵌入式,发现大部分二进制程序都使用busybox,因为它能大大减少占用空间,即减...

2019-01-19 23:28:26

阅读数 134

评论数 0

nvidia cuda工具包更新9.0版本记录

因工作需要,对公司2台服务器升级cuda到9.0版本。本文记录其过程。

2018-09-14 22:26:23

阅读数 944

评论数 0

Linux系统C/C++通用错误码实现模板

公司C++项目初期是安排不同的人编写不的模块,有嵌入式ARM的,有socket通过的,有mysql的,有redis的,不同人风格不同。由于当时我还在运维小组搞docker,没参与规则的制定,后来我接手时,确定了编码规范,也建立了Git管理,Git尝试过sub modules,不过太过繁琐,最终弃用...

2018-09-01 23:47:25

阅读数 773

评论数 2

阿里云ECS修复ubuntu 16.04漏洞过程

某次登陆阿里云网站后台,收到漏洞提醒信息。 按提示查看,内容如下: 标题: CPU处理器内核存在Spectre漏洞 CVSS分值: 7.9 CVSS: CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N 披露时间: 2018-01-03 00:00:00 ...

2018-09-01 13:26:55

阅读数 880

评论数 0

linux gcc编译器误用-MM导致出现linker input file unused because linking not done

昨晚深夜,音视频群有网友发消息给我,反馈我写的Makefile模板工程有一个bug,输入make之后,提示:linker input file unused because linking not done,并且没有生成a.out文件。 毕竟是自己一直维护的代码,出现bug就修正。

2018-08-31 22:38:48

阅读数 4285

评论数 0

遇到一个valgrind自身的bug

背景 公司C++项目代码使用了cppcheck做静态代码检查,也使用valgrind检查是否有内存泄漏问题。我多次强调要做到0警告,虽然有了CICD的Jenkins自动检查,也将结果通过邮件发给项目人员,但有的人还是没去修正警告,由于不是自己管辖范围,不好多说什么。 最近使用valgrind测...

2018-08-30 22:23:05

阅读数 561

评论数 0

linux系统C语言实现域名解析功能

背景 后台项目划分几个小服务,分别部署到不同的docker容器中,不同服务通过socket连接,docker的IP地址是由dockerd自动分配的,当然,也可以固定IP,但这样不好。因此,为了方便部署和维护,考虑通过容器别名的方式。容器名通过ini配置文件传递到程序里,程序需要根据容器名解析出对...

2018-08-17 13:31:47

阅读数 1774

评论数 0

程序分身:根据不同程序名执行不同函数

背景 最近在看某开源项目源码,发现代码里对main函数的参数做了处理,根据传入的程序名称(即argv[0]),调用不同的函数。笔者认为这个小技巧挺不错的,本文就整理实践一下。 完整源码 main.c源码如下: /** 作用: 只有可执行程序文件名...

2018-07-26 00:57:23

阅读数 228

评论数 0

Linux C简单日志打印代码示例

背景 项目代码的打印函数,有的用printf,有的用std::cout,风格不统一,也不方便查看,因此需要编写一个统一的函数接口。 需求及实现 时间戳 该打印函数需要有时间戳,精确到毫秒。这样能直观观察程序运行时间。获取时间使用localtime函数,毫秒的获取使用gettim...

2018-07-26 00:55:18

阅读数 1436

评论数 0

Linux C解析命令行参数代码

背景 Linux下解析main函数参数,使用getopt,依赖头文件:#include <unistd.h>。 代码如下: static char g_deviceid[32] = {0}; std::string g_s...

2018-07-25 12:58:37

阅读数 1343

评论数 0

Makefile模板的继续改进

上一文章的Makefile,存在一个比较大的问题,那就是生成可执行的二进制文件时,会链接所有的目标文件(.o文件),这样的后果是,二进制文件体积比较大,经过调查,发现静态链接可以解决此问题。 Makefile内容 在原来基础上,添加中间临时静态库libfoobar.a(编...

2018-07-02 18:51:34

阅读数 279

评论数 0

Makefile模板的改进

以前写的Makefile,有一些地方不够人性化,头文件或源码文件比较多的情况,要手动输入很多个地方。这次参考了一些资料,完善一下。 存在问题 原来的做法: # !!!=== INC1 = ./ INC2 = ./inc INC3 = INCDIRS...

2018-07-01 15:37:56

阅读数 111

评论数 0

一个使用多年的Makefile模板

许久以前,一直使用自己总结的Makefile模板,这个模板也是基于现有资料整理而成的。 内容 Makefile完全内容如下: # !!!=== cross compile... CROSS_COMPILE ?= CC = $(CROSS_COMP...

2018-07-01 15:37:05

阅读数 496

评论数 0

Lubuntu16.4.3定制教程

Lubuntu16.4.3定制教程 迟思堂工作室 李迟(li@latelee.org) 本文是对lubuntu-16.04.3-desktop-amd64.iso进行定制文档,最终输出一个可以烧写到U盘并能启动的ISO镜像文件。本文要求读者对linux有一定掌握程度,比如:知道用户权限(roo...

2018-04-19 14:01:05

阅读数 1063

评论数 0

Linux平台音频测试程序

一个音频测试程序,录音并播放。代码如下:

2017-05-31 18:28:51

阅读数 1972

评论数 6

Linux C代码实现主函数参数选项解析

软件开发中难免会对命令行输入参数做解析、判断。本文给出2个此方面的示例。

2016-08-21 16:38:50

阅读数 2738

评论数 0

GCC弱符号的一个应用示例

GCC对C/C++做了很多扩展,很多基于Linux环境的开源项目都会使用。本文介绍一下弱符号的应用。

2016-02-29 21:36:10

阅读数 660

评论数 0

linux时区的几个代码片段

这两天学习了Linux环境下的时区方面的东西。做一些小笔记,也包括代码方面。

2016-01-23 15:37:53

阅读数 1155

评论数 0

提示
确定要删除当前文章?
取消 删除