
linux
文章平均质量分 54
elimuzi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bpftrace对icmp进行监控,查看icmp包是哪个进程发出的
apt install bpftrace#!/usr/bin/bpftrace#include <linux/skbuff.h>#include <linux/ip.h>#include <linux/udp.h>#include <linux/socket.h>kprobe:__dev_queue_xmit{ //获取调用次数 @dev_queue_xmit[tid]=count(); @skb[tid]=(struct sk_buff原创 2022-05-13 15:09:48 · 1085 阅读 · 0 评论 -
linux鼠标键盘监控整理
linux鼠标键盘监控整理一、监控鼠标键盘设备#include <sys/types.h>#include <fcntl.h>#include <stdlib.h>#include <time.h>#include <stdio.h>#include <unistd.h>#include <linux/input.h>#include <pthread.h>#include <time.原创 2021-11-26 15:08:23 · 2815 阅读 · 6 评论 -
xfs文件系统修复问题
xfs文件系统修复问题问题背景系统版本为kylin-sp1-20200711。现场断电后无法挂载逻辑卷。此逻辑卷为用户数据盘、挂载提示文件系统超级块;无法修复文件系统,文件系统修复时报错。问题修复使用命令xfsrepair -L /dev/磁盘名 进行修复,发生如下报错。错误提示:bad hash table for directory inode 4297253387 points to non-existent inode 38655360025.xfs_repair: phase6原创 2021-09-18 13:58:53 · 2705 阅读 · 0 评论 -
Linux的Python文件的开头/usr/bin/env python与/usr/bin/python
Linux的Python文件的开头/usr/bin/env python与/usr/bin/python还是有点区别的开头为#!/usr/bin/env python例如 dstat命令,当/usr/bin/dstat的开头为#!/usr/bin/env python时使用 ps -eo stat,pid,comm | grep dstat查找是找不到的,因为comm是Python。开头为#/usr/bin/python例如 dstat命令,当/usr/bin/dstat的开头为#!/usr/bi原创 2021-03-29 14:15:08 · 868 阅读 · 0 评论 -
C语言检测连接网卡状态
C语言检测连接网卡状态 有些客户程序里面的代码需要自己检测网卡状态,检查是否连接网线。需要提供函数给他们调用,检测网卡连接状态。//在<linux/ethtool.h>头文件中存在结构体`ethtool_value`,用于存放网卡连接状态。/* for passing single values */struct ethtool_value { __u32 cmd; __u32 data; // 表示网卡连接状态。};// 在<li原创 2021-02-05 08:58:14 · 3960 阅读 · 0 评论 -
gcc与glibc关系
gcc与glibc关系glibc是什么,以及与gcc的关系?glibc是gnu发布的libc库,也即c运行库。glibc是linux 系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本 身也提供了许多其它一些必要功能服务的实现,主要的如下:(1)string,字符串处理(2)signal,信号处理(3)dlfcn,管理共享库的动态加载(4)direct,文件目录操作(5)elf,共享库的动态加载器,转载 2021-01-28 10:44:10 · 5500 阅读 · 0 评论 -
c++ 开发Libreoffice,libreoffice在linux下sdk环境配置
切换到root用户下1.aptinstalllibreoffice-dev2.cd/usr/lib/libreoffice/sdk3.设置环境变量./setsdkenv_unix4.根据rdb数据文件反射生成C++头文件,由于sdk附带的C++头文件太少,按需生成头文件。基于UNO组件的反射机制,使用uno工具来生成这些头文件。执行:cppumaker-Gc-O"/usr/lib/libreoffice/sdk/include""/usr/lib/libreo...原创 2020-12-22 17:16:28 · 3129 阅读 · 5 评论 -
linux qt程序root用户执行,无法输入中文
添加环境变量 setenv("XMODIFIERS", "@im=fcitx", 1); setenv("QT4_IM_MODULE", "xim", 1); setenv("QT_IM_MODULE", "xim", 1); setenv("GTK_IM_MODULE", "xim", 1);例如#include "mainwindow.h"#include <QApplication>#include <stdio.h>#include原创 2020-12-14 18:41:22 · 1706 阅读 · 2 评论 -
非阻塞connect卡select问题分析
非阻塞connect卡select问题分析目录非阻塞connect卡select问题分析一、connect原理1.1阻塞与非阻塞connect的区别1.2 connect函数超时时间二、select原理三、问题原因4.1 select的第四个参数建议加上。4.2 select的第五个参数timeout的大小建议。4.3 fd的多线程操作一、connect原理1.1阻塞与非阻塞connect的区别为解决阻塞connect等待耗时过长,最长等待127秒问题,企原创 2020-11-23 09:37:05 · 1937 阅读 · 0 评论 -
systemV信号量的使用案例
systemV信号量处理的函数有:semget();semctl();semop();函数semget函数#include<sys/sem.h>int semget(key_t _key ,int _nsems,int _semflg);说明解释功能创建一个新的信号量或获取一个已经存在的信号量的键值。返回值成功返回信号量的标识码ID;失败返回-1。参数解释_key为整型值,用户可以自己设定。有两种情况:1、 键值是IPC原创 2020-11-13 14:43:55 · 500 阅读 · 0 评论 -
linux qt4的qcombobox下拉框,在窗口管理器,开启复合效果后,会跑偏问题
1. 下载qt4的源码这里使用的是qt4.8.6网址,http://download.qt.io/archive/qt/4.8/4.8.6/,下载qt-everywhere-opensource-src-4.8.6.tar.gz。2. 编译qta.解压将qt-everywhere-opensource-src-4.8.6.tar.gz放入/opt目录下tar -zxvf qt-everywhere-opensource-src-4.8.6.tar.gzb.生成Makefilecd qt-ev原创 2020-10-27 09:14:14 · 640 阅读 · 0 评论 -
编译驱动及iso镜像替换megaraid_sas驱动
iso镜像替换megaraid_sas驱动一、问题分析服务器ThtinkSystem SR650,RAID适配器为ThinkSystem RAID930-16i 4G。安装Kylin-4.0.2-server-sp2-18011911.J1-x86_64.iso系统失败,显示未探测到磁盘驱动器。Kylin-4.0.2-server-sp2-18011911.J1-x86_64.iso的内核版本为4.4.58-20171113.kylin.5.all-generic安装centos7.6或者使用具有l原创 2020-09-29 17:28:21 · 5847 阅读 · 0 评论 -
创建进程到极限,资源不足
#include <stdio.h>#include <unistd.h> int main(int argc, char *argv[]){ int i=0; int pid; while(1) { pid = fork(); if(pid == 0) { break; } else if(pid == -1) {原创 2020-09-28 14:34:23 · 319 阅读 · 0 评论 -
FT2000+ 64K内存页系统chromium无法渲染问题
FT2000+ 64K内存页系统chromium无法渲染问题64KB内存页为65536Byte,以2为底取对数为16。修改PageAllocator.h,将kPageAllocationGranularityShift改为16,kSystemPageSize改为65536。修改PartitionAlloc.h,将kPartitionPageShift改为18。以2为底取对数为16 + 2。修改Heap.h,将blinkPageSizeLog2改为21。以2为底取对数为16 + 5。手动修改修改P原创 2020-09-25 15:23:17 · 1081 阅读 · 6 评论 -
实时核多线程性能低问题分析
实时核多线程性能低问题分析一、核介绍核核名标准核3.10.0-862.1.ky4.x86_64实时核3.10.0-1127.rt56.1093.ky4.x86_64二、性能测试使用./Run -c 4进行测试指标名标准核分数实时核分数System Benchmarks Index Values13375.712690.9Double-Precision Whetstone2474.22499.2Execl Throughp原创 2020-09-11 09:21:11 · 1049 阅读 · 1 评论 -
linux查找僵尸进程
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'原创 2020-08-26 16:24:03 · 467 阅读 · 0 评论 -
linux的system和popen函数执行系统命令
linux的systme和popen函数执行系统命令,system和popen都是阻塞的,子命令进程运行结束才会返回。原创 2020-08-26 11:37:59 · 446 阅读 · 0 评论 -
系统启动卡在 `fb:conflicting fb hw usage nouveaufd vs VESA VGA-removing generic driver`无法进入系统
系统启动卡在fb:conflicting fb hw usage nouveaufd vs VESA VGA-removing generic driver无法进入系统grub 引导时加入nomodeset或加入 nouveau.modeset=0 nouveaufb.modeset=0原创 2020-08-25 15:33:41 · 1697 阅读 · 1 评论 -
根分区变成只读
根分区或boot分区变为只读 mount -o rw,remount / mount -o rw,remount /boot原创 2020-08-25 11:11:45 · 1030 阅读 · 0 评论 -
生成run文件,进行安装
tar -zcvf 需安装文件夹.tar.gz 需安装文件夹以Multiple为例,vim install.sh#!/bin/bashlines=17tail -n +$lines $0 > /tmp/Multiple.tar.gztar zxvf /tmp/Multiple.tar.gz -C /opt/cp /opt/Multiple/lib/* /usr/lib/ln -s /usr/lib/libmul.so.1 /usr/lib/libmul.sochmod a+x /原创 2020-08-25 11:04:41 · 721 阅读 · 0 评论 -
初步认识并行计算openmp
openmpopenmp是一种内存共享的并行计算解决方案,用于单台多核计算机,采用fork-join多线程进行并行计算。为用户提供了编译指导语句和运行时库函数。MPI 则是非内存共享的并行计算解决方案,用于计算机群,多台计算机并行计算。案例1openmp.c文件内容如下,使用 gcc -fopenmp openmp.c -o openmp进行编译。#include<stdio.h>#include"omp.h"int main(int argc, char * argv[]原创 2020-08-11 15:50:02 · 540 阅读 · 0 评论 -
linux查看CPU使用情况的命令
mpstat命令使用 mpstat -P ALL 1@X280:~/test$ mpstat -P ALL 1 1Linux 5.4.0-37-generic (X280) 2020年06月22日 _x86_64_ (8 CPU)14时43分16秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle14时43分17秒 all 3.44 0.00 2.67原创 2020-06-22 15:39:19 · 836 阅读 · 0 评论 -
linux 查看硬盘序列号、设备序列号、系统安装时间
linux 查看硬盘序列号、设备序列号hdparm查看硬盘基本信息df -h查看文件系统,可以看到设备/dev/mapper/vgubuntu--kylin-root有233Glmz@lmz-X280:~$ df -h文件系统 容量 已用 可用 已用% 挂载点udev 3.9G 0 3.9G 0% /devtmpfs原创 2020-05-27 11:48:07 · 19632 阅读 · 0 评论 -
linux c 中英文日期格式
函数说明setlocale位于locale.h头文件setlocale(LC_TIME,"zh_CN.UTF-8");1表示设置日期编码格式,这里设置为中文的日期格式strftime位于time.h头文件strftime格式化struct tm日期,受setlocale(LC_TIME,"zh_CN.UTF-8");的影响。测试#include <time.h>#include <locale.h>#include <stdio.h>/*获取当前日期*原创 2020-05-26 08:59:01 · 829 阅读 · 0 评论 -
字符串转浮点数atof函数的实现
#include <stdio.h>/*字符是否在某个区间范围内*/#define in_range(c, lo, up) ((unsigned char)c >= lo && (unsigned char)c <= up) /*十进制内字符*/#define isdigit(c) in_range(c, '0', '9...原创 2020-04-29 10:04:59 · 393 阅读 · 2 评论 -
c语言字典库的使用,实现键值对查找,以字符串为Key,以指针为Value
c语言字典库的使用,实现键值对查找,以字符串为Key,以指针为Valuedictionary库的使用dictionary库源码dictionary的接口说明dictionary使用测试dictionary库的使用前不久,一直在找一个c语言版的hash键值对库,找到一个dictionary库,是以字符串为key,以字符串为value的键值对库,但是我需要的是以字符串为key,以任意指针为valu...原创 2020-04-28 11:27:03 · 9946 阅读 · 5 评论 -
linux c 线程池库
主要由两个文件组成一个threadpool.h头文件和一个threadpool.c源文件组成。threadpool.c文件#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <assert.h>#include...转载 2020-04-27 16:06:41 · 847 阅读 · 5 评论 -
linuxc 函数的耗时测试
获取当前时间的微妙/** * 获取当前时间的微妙数*/long int GetMicrosecondCount(){ struct timeval tv; gettimeofday(&tv, NULL); return tv.tv_sec*1000000 + tv.tv_usec;}获取前后时间差#define GET_TIME(t, code) ...原创 2020-04-27 14:58:31 · 574 阅读 · 0 评论 -
设置线程高优先级
#ifdef HAVE_SCHED_H#include <sched.h>#endif void setCurrentThreadHighPriority(bool value) { // Start out with a standard, low-priority setup for the sched params. struct sched_param sp;...原创 2020-04-26 17:01:59 · 350 阅读 · 0 评论 -
struct timeval的处理(timeval比较及相减)
timeval结构体的处理函数timeval的大小比较timeval转为double类型的秒两个timeval类型之间的时间差timeval的大小比较/** ****************************************************************************** * @brief 时间比较 t1 == t2 返回0, t1 > ...原创 2020-04-22 09:47:28 · 7726 阅读 · 0 评论 -
使用snprintf实现itoa
发现linux c的stdlib.h中没有itoa,暂时使用snprintf代替实现。而snprintf在#include <stdio.h>中。#include <stdio.h>#include <stdlib.h>int itoa(int i, char * str, int maxlen) { return !str ? -1 : sn...原创 2020-04-17 21:04:34 · 287 阅读 · 0 评论 -
C语言使用cJson库解析json
使用C语言解析jsoncjson库对cjson库进一步封装调用测试案例cjson库在github或gitee上cjson,使用库中的cJSON.c与cJSON.h即可。以下是我使用cjson的案例仅供参考。我的cJosn使用案例对cjson库进一步封装对cjson库封装了几个函数,方便对json进行操作,以供参考根据json文件路径,将文件转为json对象cJSON * json_...原创 2020-04-09 16:07:07 · 1567 阅读 · 1 评论 -
/etc/profile中配置LD_LIBRARY_PATH不生效问题分析
LD_LIBRARY_PATH配置不生效LIBRARY_PATH与LD_LIBRARY_PATH问题复现分析1:是否执行`source /etc/profile`分析2:`LD_LIBRARY_PATH`中配置的目录是否正确分析3:`LD_LIBRARY_PATH`中配置的目录,里面的动态库是否创建了软连接,若共享库没有创建软连接,也会找不到。LIBRARY_PATH与LD_LIBRARY_PA...原创 2020-04-08 14:00:36 · 12447 阅读 · 0 评论 -
gcc编译器预定义宏(__FILE__,__FUNCTION__,__LINE__)用于输出跟踪代码,定位代码行
__FILE__,__FUNCTION__,__LINE__使用案例如下,在编译时编译器会替换其值。用于更正#include <stdio.h>#include <stdlib.h>int main(int argc, char * argv[]){ char * lang = getenv("LANG"); // 获取本程序运行的语言环境 if ...原创 2020-04-08 11:25:28 · 1945 阅读 · 0 评论 -
linux环境变量、environ、getenv、setenv、unsetenv
linux环境变量linux环境变量shell获取环境变量环境变量相关命令环境变量名C获取环境变量linux环境变量每个进程运行都有自己的环境变量。也可以认为,shell及其在该shell中运行的子进程共用的变量,称为环境变量。一个进程的变量有很多,分为该进程的自定义变量,及其环境变量。shell获取环境变量环境变量相关命令命令说明set显示当前 Shell 所有变...原创 2020-04-08 09:52:52 · 2776 阅读 · 0 评论 -
Linux在执行命令并将结果赋值给变量
通过find命令在/etc目录下查找sources.list文件,将结果赋值给temp变量temp=`sudo find /etc/ -name sources.list`echo $temp下面的命令效果一样temp=$(sudo find /etc/ -name sources.list)echo $temp...原创 2020-01-09 19:08:04 · 8623 阅读 · 1 评论 -
Centos7安装telnet
Centos7安装telnetCentos7安装telnet服务端与telnet客户端1.检查是否安装telnet2.查询安装包3.安装telnet4.设置服务开机自启5.设置启动6.测试是否安装成功7. 若测试失败,则可尝试关闭防火墙Centos7安装telnet服务端与telnet客户端1.检查是否安装telnet输入rpm -qa | grep xinetd 检查守护进程程序是否安...原创 2019-09-30 14:31:16 · 422 阅读 · 0 评论 -
(一)Linux常用命令
Linux常用命令1.基本命令格式(1)命令提示符: [root@localhost ~]#root : 当前登录用户localhost : 主机名~ 当前所在目录(家目录)# 超级用户的提示符 , 普通用户的提示符是 $(2)命令格式: 命令 [选项] [参数] ; --个别命令不遵守这个格式例如ls [选项]选项: -a 显示所有文件, 包括隐藏文件原创 2016-08-31 22:09:07 · 274 阅读 · 0 评论