linux相关
文章平均质量分 76
随心记IT
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux获取CPU/GPU的温度
Linux系统中CPU温度监测方法:通过读取/sys/class/thermal/thermal_zone0/temp文件获取温度值(单位为毫摄氏度),需除以1000转换为摄氏度。示例代码展示了温度监控线程的实现,包括实时读取、超温报警(120℃触发重启)等功能。注意事项:系统通常使用毫摄氏度单位,可能存在多个thermal_zone文件对应不同传感器,建议通过watch命令动态监控温度变化。该机制可用于嵌入式设备温度保护,确保系统稳定运行。原创 2025-07-15 14:46:54 · 752 阅读 · 0 评论 -
lighttpd使用
之前在项目中使用的是thttpd,由于thttpd是用明文发送的,为了安全考虑,用https来代替http,增加了证书认证功能,所以最后选择了lighttpd。 lighttpd支持了cgi和fcgi,thttpd只支持了cgi,为了兼容的同时避免重复开发,仅在lighttpd上配置了支持cgi功能。 接下来简单了记录下自己的一些配置内容,后续有用到新功能...原创 2019-11-21 19:51:06 · 8480 阅读 · 0 评论 -
printf打印设置字体和背景带颜色的输出方法
为了方便调试,难免会加一些log信息,当有大量log时,去翻阅很难一眼看出错误信息,这时就可以对log设置某些颜色或者高亮度等等。具体格式如下:printf("\033[字背景颜色;字体颜色m 字符串 \033[0m");例子:printf("\033[1m\033[45;33m HELLO_WORLD \033[0m\n");颜色代码...原创 2019-11-18 14:43:44 · 1373 阅读 · 0 评论 -
linux awk命令
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfr原创 2017-09-06 10:51:37 · 349 阅读 · 0 评论 -
linux 获取eth0(指定网卡)网卡的IP地址(或MAC地址)
引言使用场景:我使用的Linux服务器上有多个网卡,有时候就需要在脚本中使用到指定网卡的IP地址或MAC地址,那么这个时候就有两种做法,一是预先读取网卡的IP地址或MAC地址,然后写入到脚本中;另外一种方法就是通过shell命令实时获取指定网卡上的当前IP地址或MAC地址。一般用法:使用ifconfig eth0读取网卡信息手动将IP地址或MAC地址拷贝转载 2017-09-13 20:13:06 · 20068 阅读 · 0 评论 -
Linux cut命令用法
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的(1)其语法格式为:cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]使用说明cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如原创 2017-09-06 11:03:36 · 496 阅读 · 0 评论 -
linux线程资源回收方法
在写网络服务器程序时可能需要实现多线程接收多个客户端的数据,死循环等待client的connect,connect之后创建thread,这样其实有一个问题,服务器程序需要长期运行,长时间线程的创建,线程资源的回收就是一个问题。Linux系统中程序的线程资源是有限的,表现为对于一个程序其能同时运行的线程数是有限的。而默认的条件下,一个线程结束后,其对应的资源不会被释放,于是,如果在一个程序中原创 2017-10-11 09:36:58 · 862 阅读 · 0 评论 -
计算从1970年到当前时间所经历过的秒数
这个算法来自LINUX的源码,下面带有大神的解析,自己在RTC实验中也使用了,不用月份表,润平年的处理,几行就可得出结果,以下是程序和大神的解析Linux源码中的mktime算法解析 我们知道,从CMOS中读出来的系统时间并不是time_t类型,而是类似于struct tm那样,年月日时分秒是分开存储的。 那么,要把它转化为系统便于处理的time_t类型,就需要算法进行转换。...翻译 2019-09-18 18:22:54 · 17848 阅读 · 1 评论 -
libxml2的安装及使用
本文着重介绍解析xml的libxml2库的安装及使用,举例说明创建和解析xml的过程。是针对C语言开发人员使用你若想详细学习前端的一套东西,即xml html css javascript(JS)等,可以登录这个网站http://www.runoob.com/一、libxml2的安装 关于libxml2的介绍请参考官方网址http://xmlsoft.org/,下载最...转载 2018-09-12 17:18:34 · 2685 阅读 · 0 评论 -
Linux使用iconv进行编码转换
最近在做项目,为了能让UI显示中文,需要对中文进行编码转换。因为我用的是directfb,它只支持utf-8格式,所以要将gb2312转换为utf-8,这时使用iconv是非常方便的。 以下是我在项目中用到的一部分代码。首先要使用iconv的API需要包含它的头文件#include "iconv.h" 或者#include <iconv.h>#define O...原创 2018-10-18 11:12:10 · 1224 阅读 · 0 评论 -
Linux Excel (*.xls)文件读取,使用libxls库
首先下载libxls,项目地址:http://sourceforge.net/projects/libxls/解压后使用:./configure --prefix=/usrmakesudo make install安装,请注意,在configure前,一定要安装libiconv-dev,否则中文显示可能不正常。关于libiconv如何使用,请参考我上一篇文章https://b...原创 2018-12-13 15:58:06 · 12557 阅读 · 3 评论 -
C语言实现遍历目录并用树状打印
头文件:#include <sys/types.h> #include <dirent.h>struct dirent{ ino_t d_ino; //d_ino 此目录进入点的inode ff_t d_off; //d_off 目录文件开头至此目录进入点的位移 signed short int d_reclen; //d_recle...原创 2018-12-20 10:53:39 · 3316 阅读 · 1 评论 -
vi快捷键
今天分享一些常用的vi快捷键,后续有遇到会继续添加。移动光标上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行下:j nj:向下移动n行左:h nh:向左移动n列右:l nl:向右移动n列w:光标以单词向前移动 nw:光标向前移动n个单词 光标到单词的第一个字母上b:与w相反$:移动光标到行尾 n$:移动到第n行的行尾0(Num):移动光标到行...原创 2019-04-09 19:51:46 · 451 阅读 · 0 评论 -
Linux下MD5移植和编程
1、安装MD5工具首先下载MD5工具源码:进入地址:http://martin.hinner.info/libmd/下载libmd库libmd-0.3.tar.bz2在ubuntu14.04安装libmd工具:#tar -jxvf libmd-0.3.tar.bz2#cd libmd-0.3#./configure#make#make install注意原创 2017-07-27 11:03:18 · 1545 阅读 · 0 评论 -
Makefile中的wildcard、notdir、patsubst 用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。一般我们可以使用“$(wildc原创 2017-07-26 15:32:41 · 874 阅读 · 0 评论 -
iptables用法简介
iptables的基本语法格式iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]说明:表名、链名用于指定iptables命令所操作的表和链,命令选项用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;条件匹配用于指定对符合什么样条件的数据包进行处理;目标动作或跳转用于指定数据包的处理方式(比如允许通过、拒绝、丢弃、跳转(Ju原创 2017-08-02 20:30:04 · 424 阅读 · 0 评论 -
linux串口编程
linux串口编程有一个非常重要的结构体,主要用来设置串口的一些参数。struct termios{unsigned short c_iflag; /* 输入模式标志*/unsigned short c_oflag; /* 输出模式标志*/unsigned short c_cflag; /* 控制模式标志*/unsigned short c_lflag; /*区域模式标志或原创 2017-05-21 15:15:15 · 546 阅读 · 0 评论 -
lstat函数和S_ISDIR 、S_ISLNK等几个常见的宏
一、lstat,是一种文件描述词。意思是获取一些文件相关的信息。函数名: lstat功 能: 获取一些文件相关的信息用 法: int lstat(const char *path, struct stat *buf);返回值:成功返回0。参数:path:文件路径名。filedes:文件描述词。buf:是以下结构体的指针struct stat {原创 2017-06-01 17:06:43 · 6175 阅读 · 1 评论 -
Linux进程间通信之共享内存
一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到原创 2017-06-19 18:47:08 · 304 阅读 · 0 评论 -
Linux进程间通信之消息队列
一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。二、在Li原创 2017-06-19 18:49:23 · 371 阅读 · 0 评论 -
vi下方向键及backspack不能使用解决方法
之前安装完ubuntu后,用vi打开文件,在插入模式下,使用方向键及backspack会出现乱码以及无法删除现象,出现这个原因是配置文件出现的问题。 接下来介绍下我的解决方法:sudo vi /etc/vim/vimrc.tiny将11行中的 set compatible修改为 set nocompatible并在下面添加一行内容: se原创 2017-05-25 16:37:04 · 809 阅读 · 0 评论 -
Ubuntu下安装配置Opencv2.4.9
Ubuntu下配置安装Opencv2.4.9 每次接触学习到新的东西,都要养成文档记录的习惯,以便日后再需时方便自己,不用再重复做同样的工作。今天我就来记录下我在Ubuntu下安装opencv2.4.9的方法,希望对有需要的朋友们有所帮助。 我的环境是Ubuntu14.04,Opencv2.4.9,不同版本方法差不多。Opencv的最近的一些版本都是原创 2017-05-15 10:37:01 · 901 阅读 · 0 评论 -
特殊进程之僵尸进程
僵尸进程(Zombie Process) 进程已运行结束,但进程的占用的资源未被回收,这样的进程称为僵尸进程。 在每个进程退出的时候,内核释放该进程所有的资源、包括打开的文件、占用的内存等。 但是仍然为其保留一定的信息,这些信息主要主要指进程控制块的信息(包括进程号、退出状态、运行时间等)。直到父进程通过wait() 或 waitpid() 来获取其状态原创 2017-06-10 17:13:52 · 378 阅读 · 0 评论 -
特殊进程之孤儿进程
进程运行结束,但子进程还在运行(未运行结束)的子进程就称为孤儿进程(Orphan Process)。孤儿进程最终会被 init 进程(进程号为 1 )所收养,并由 init 进程对它们完成状态收集工作。 孤儿进程是没有父进程的进程,为避免孤儿进程退出时无法释放所占用的资源而变为僵尸进程,进程号为 1 的 init 进程将会接收这些孤儿进程,这一过程也被称为“收养”。i原创 2017-06-10 17:27:32 · 363 阅读 · 0 评论 -
特殊进程之守护进程
什么是守护进程? 守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 守护进程是个特殊的孤儿进程,这种进程脱离终端,为什么要脱离终端呢?之所以脱离于终端是为了避免进程被任何终端所产生的信息原创 2017-06-10 17:53:57 · 335 阅读 · 0 评论 -
do...while(0)解析
为什么在内核中碰到很多 #define ... do{...} while(0) ?有以下几点原因:1、空语句在编译的时候会出现警告,所以有必要用#define FOO do{ } while(0)2、给定一个基本块,可以在里面定义局部变量3、为了能够在条件语句中使用复杂的宏定义。例如下面这段代码:[cpp] view plain原创 2017-06-10 23:37:41 · 440 阅读 · 0 评论 -
Linux crontab 命令详解
在 Linux 中,任务可以被配置在指定的时间段、指定的日期、或系统平均载量低于指定的数量时自动运行。系统预配置了对重要系统任务的运行,以便使系统能够时时被更新。譬如,被 locate 命令使用的 slocate 数据库每日都被更新。系统管理员可使用自动化的任务来执行定期备份、监控系统、运行定制脚本等等。1. croncron 是一个可以用来根据时间、日期、月份、星原创 2017-06-11 16:46:31 · 417 阅读 · 0 评论 -
I/O多路复用select、poll、epoll的区别使用
I/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。select(),poll(),epoll()都是I/O多路复用的机制。I/O多路复用通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪,就是这个文件描述符进行读写操作之前),能够通知程序进行相应的读写操作。但select(),转载 2017-06-14 11:43:47 · 1360 阅读 · 0 评论 -
文件描述符的复制:dup()和dup2()
dup() 和 dup2() 是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。这个过程类似于现实生活中的配钥匙,钥匙相当于文件描述符,锁相当于文件,本来一个钥匙开一把锁,相当于,一个文件描述符对应一个文件,现在,我们去配钥匙,通过旧的钥匙复制了一把新的钥匙,这样的话,旧的钥匙和新的钥匙都能开启这把锁。对比于 dup(),转载 2017-06-14 11:47:07 · 499 阅读 · 0 评论 -
V4L2应用程序框架
V4L2是V4L的升级版本,linux下视频设备程序提供了一套接口规范。常用的结构体在内核目录include/linux/videodev2.h中定义struct v4l2_requestbuffers //申请帧缓冲,对应命令VIDIOC_REQBUFSstruct v4l2_capability //视频设备的功能,对应命令VIDIOC_QUERYCAPst原创 2017-05-26 14:23:14 · 792 阅读 · 0 评论 -
zImage与uImage的区别
在编译Linux内核时,通常都是生成zImage,它是一般情况下默认的压缩内核映像文件。而实际上,zImage是通过压缩内核文件vmlinux后,再加上一段解压启动代码得到。而uImage是u-boot使用bootm命令引导的Linux压缩内核映像文件格式,是使用工具mkimage对普通的压缩内核映像文件(zImage)加工而得。它是uboot专原创 2017-05-26 09:51:22 · 593 阅读 · 0 评论
分享