
linux
文章平均质量分 52
log记录
点滴记录开发过程!
展开
-
SPI正确连接
因为SPI接线错误,导致SPI调试两周不成功却找不到原因!原创 2022-09-13 18:54:28 · 385 阅读 · 1 评论 -
Makefile 编译动态库文件及链接动态库
文件目录结构如下复制代码1 dynamiclibapp.c2 Makefile3 comm/inc/apue.h4 comm/errorhandle.c5 dynamiclib/Makefile6 dynamiclib/dynamiclib_add.c7 dynamiclib/dynamiclib_mul.c8 dynamiclib/inc/dynamiclibs.h9 dynamiclib/libs/复制代码dynamiclib目录dynamiclib/inc/dynamic原创 2021-06-11 16:35:37 · 2897 阅读 · 3 评论 -
Linux定时器的使用
使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,使用alarm定时发出一个信号,还有那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不常用。alarmalarm用在不需要经确定时的时候,返回之前剩余的秒数。NAMEalarm - set an原创 2021-06-11 14:09:56 · 135 阅读 · 2 评论 -
clock_gettime demo
#include <stdio.h>#include <string.h>#include <time.h>#include <sys/time.h>#include <assert.h>#include <unistd.h>static void clock_gettime_test(){struct timespec ts;clock_gettime(CLOCK_REALTIME, &ts);printf原创 2021-06-10 10:13:27 · 311 阅读 · 0 评论 -
time命令
time命令说明:喜欢写小程序的人都特别注重自己程序的执行效率,那么在Linux上,就有一个time的命令,用于测量命令的运行时间,还可以测量内存、I/O等的使用情况。一个程序在运行时使用的系统资源通常包括CPU、内存和I/O等;CPU资源的统计包括实际使用时间(real time)、用户态使用时间(the process spent in user mode)、内核态使用时间(the process spent in kernel mode)。(关于用户态和内核态的理解,文章后面有解释)原创 2021-05-25 10:08:53 · 1371 阅读 · 0 评论 -
Linux 下查看所有用户方法
增加用户adduser删除用户userdel方法 1 :使用 /etc/passwd 文件方法 2 :使用 getent 命令getent passwd说明:列表用冒号分割的 7 个字段:**用户名 (magesh): 已创建用户的用户名,字符长度 1 个到 12 个字符。**密码(x):代表加密密码保存在 `/etc/shadow 文件中。**用户 ID(506):代表用户的 ID 号,每个用户都要有一个唯一的 ID 。UID 号为 0 的是为 ...原创 2021-05-20 10:45:07 · 6158 阅读 · 0 评论 -
火焰图教程
https://www.perl.org/原创 2021-05-19 15:01:41 · 150 阅读 · 0 评论 -
Linux动态库环境变量设置
修改环境变量设置,编辑/etc/profilevi /etc/profile在文件里末尾加上对应的环境变量信息。动态库环境变量设置:export LD_LIBRARY_PATH=/home/server/lib/使配置即时生效source /etc/profile原创 2021-05-10 15:30:24 · 328 阅读 · 0 评论 -
三种查看可执行文件所依赖的库方法
查看一个可执行文件所依赖的库一、ldd命令 $ ldd a.out linux-vdso.so.1 (0x000000fffef24000) libc.so.6 => /lib/mips64el-linux-gnuabi64/libc.so.6 (0x000000fff78d4000) /lib64/ld.so.1 (0x000000fff7ae8000)二、objdump命令 $ objdump -x a.out | grep NE...原创 2021-05-10 13:32:55 · 2760 阅读 · 0 评论 -
/proc/sys/kernel/printk
在 /proc/sys/kernel/printk 会显示4个数值(可由 echo 修改),分别表示当前控制台日志级别、未明确指定日志级别的默认消息日志级别、最小(最高)允许设置的控制台日志级别、引导时默认的日志级别。当 printk() 中的消息日志级别小于当前控制台日志级别时,printk 的信息(要有/n符)就会在控制台上显示。但无论当前控制台日志级别是何值,通过 /proc/kmsg (或使用dmesg)总能查看。另外如果配置好并运行了 syslogd 或 klogd,没有在控制台上显示的 prin原创 2021-05-07 15:06:07 · 6363 阅读 · 0 评论 -
/proc/sysrq-trigger
/proc/sysrq-trigger详解1.立即重新启动计算机echo b > /proc/sysrq-trigger2.立即关闭计算机echo o > /proc/sysrq-trigger3.导出内存分配的信息 (可以用/var/log/message 查看)echo m > /proc/sysrq-trigger4.导出当前CPU寄存器信息和标志位的信息echo p > /proc/sysrq-trigger5.导出线程状态信息...原创 2021-04-30 13:24:12 · 300 阅读 · 0 评论 -
Yocto实用技巧
https://www.kancloud.cn/digest/yocto/138623原创 2021-04-23 16:45:32 · 110 阅读 · 0 评论 -
date命令
date命令功能:date 可以用来显示或设定系统的日期与时间。命令参数-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;-u:显示GMT;--help:在线帮助;--version:显示版本信息。12345日期格式字符串列表如果需要以指定的格式显示日期,可以使用“+”开头的字符串指定其格式%H 小时(以00-23来表示)。%I 小时(以01-12来...原创 2021-04-14 16:36:50 · 101 阅读 · 0 评论 -
Yocto学习扫盲
1 Yocto术语Yocto项目:是一个开源协作项目。Yocto项目使用基于OpenEmbedded(OE)构建主机,该项目使用 BitBake 工具构建完整的Linux镜像。将BitBake和OE组件组合在一起形成参考构建主机,该主机以前称为Poky。Poky两层含义:含义一:OpenedHand(公司名)最初开发的开源项目。该项目可以从现有的OpenEmbedded构建系统中开发出poky,从而成为对嵌入式Linux商业支持的构建系统。公司被英特尔收购后,该项目便成为Yocto Pro.原创 2021-04-13 17:18:42 · 1702 阅读 · 0 评论 -
下载特定版本的Linux kernel
https://mirrors.edge.kernel.org/pub/linux/kernel/原创 2021-04-13 14:45:14 · 639 阅读 · 0 评论 -
proc文件系统3(创建目录或编写文件)
要在/proc文件系统中创建一个虚拟文件,要用proc_create()或proc_create_data()函数。这个函数可以接收一个文件名、一组权限和这个文件在/proc文件系统中出现的位置。这两个函数的返回值是一个proc_dir_entry类型指针(或者为NULL,说明在发生了错误时)。然后就可以使用这个返回的指针来配置这个虚拟文件的其他参数,例如在对该文件执行读操作时应该调用的函数。函数的原型和proc_dir_entry结构中的一部分如下图所示。struct proc_dir_entry {原创 2021-04-13 11:32:11 · 779 阅读 · 0 评论 -
proc 文件系统2(其他文件简介)
/proc文件系统并不是GNU/Linux系统中的惟一一个虚拟文件系统。在这种系统上,sysfs是一个与/proc类似的文件系统,但是它的组织更好(从 /proc 中学习了很多教训)。不过 /proc 已经确立了自己的地位,因此即使sysfs与/proc相比有一些优点,/proc也依然会存在。还有一个debugfs文件系统,不过(顾名思义)它提供的更多是调试接口。debugfs的一个优点是它将一个值导出给用户空间非常简单(实际上这不过是一个调用而已)。/proc目录下常见的文件介绍:/proc/pc原创 2021-04-13 11:26:27 · 150 阅读 · 0 评论 -
proc 文件系统1 (/proc/[pid] 目录各文件简析)
Linux内核提供了一种通过 proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc 文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。 用户和应用程序可以通过 proc 得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取 proc 文件时,proc 文件系统是动态从系统内核读出所需信息并提交的。下面列出的这些文件或子文件夹,并不是都是在你的...转载 2021-04-12 11:05:07 · 1492 阅读 · 0 评论 -
linux shell数据重定向(输入重定向与输出重定向)
在了解重定向之前,先来看看linux 的文件描述符。linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值。linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:error output .原创 2021-04-09 16:37:06 · 231 阅读 · 0 评论 -
如何查看Linux命令工具的源码
首先,我们需要了解Linux下的命令分为大致分为两类:内置命令与非内置命令。查看内置命令源码内置命令是Shell自带的, shell自己进行管理。 内部命令由shell程序识别并在shell程序内部完成运行。 比如cd命令就是一个内置命令。我们可以通过help命令(help也是内置命令)来查看内置命令有哪些:查看系统当前使用的shell:我这里的shell用是bash,bash源码路径:http://ftp.gnu.org/gnu/bash/查看非内置命令源码非内置命令,也即外部命令。 外部命原创 2021-04-09 14:33:53 · 609 阅读 · 0 评论 -
清除Linux的交换空间
想清除交换空间,运行下面的命令:swapoff -a && swapon -a现在,我们将上面两种命令结合成一个命令写出正确的脚本来同时清除RAM缓存和交换空间。echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf ‘\n%s\n’ ‘Ram-cache and Swap Cleared’...原创 2021-04-08 15:56:16 · 1210 阅读 · 0 评论 -
清除linux中缓存(Cache)
1)清理pagecache(页面缓存)echo 1 > /proc/sys/vm/drop_caches or sysctl -w vm.drop_caches=12)清理dentries(目录缓存)和inodesecho 2 > /proc/sys/vm/drop_caches or sysctl -w vm.drop_caches=23)清理pagecache、dentries和inodesecho 3 > /proc/sys/vm/drop_caches or sys原创 2021-04-08 15:30:32 · 1967 阅读 · 0 评论 -
更改linux操作系统文件缓存刷新参数
相关参数和文件系统写缓存策略相关的主要是下面两个参数,其它相关参考可自行谷歌:/proc/sys/vm/dirty_ratio文件系统写缓冲区的大小,单位是百分比,表示系统内存的百分比,表示当写缓冲使用到系统内存多少的时候,开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。但是,当需要持续、恒定的写入时,应该降低其数值。/proc/sys/vm/dirty_background_ratio控制 pdflush 进程在何时刷新磁盘。单位是百分比,表示系统内存的百原创 2021-04-08 14:20:38 · 918 阅读 · 0 评论