linux
文章平均质量分 76
tiny丶
这个作者很懒,什么都没留下…
展开
-
ubuntu网桥搭建问题的探究
引入问题创建了一个虚拟网桥,将网卡eth0 、eth1进行桥接到br0 ,br0 ip为192.168.1.2 现在把两个物理设备分别接入eth0 和 eth1 ,ip设置同网段 假设为192.168.1.3、192.168.1.4,两者均可以访问192.168.1.2,但是两个设备却不能互相访问?网桥是什么?让时空穿越到上世纪70年代,Ethernet被发明出来,需要用一个黑盒子将电脑连接起来;否则电脑和谁通信,和谁网线直连,这是点对点通信了,一点也不方便,和以太网的多路访问网络初衷相违背。以太网原创 2020-05-12 18:02:09 · 415 阅读 · 0 评论 -
Libxml2库的编译和使用
Libxml2库提供了C语言解析和构造xml文档的接口,为后台C语言处理程序和前台应用程序提供了一种通用的通迅方式。本文以libxml2-2.6.30版本来说明Libxml2库的使用方法。1. 编译库文件libxml2-2.6.30.tar.gz文件解压后,进入libxml2-2.6.30文件夹,顺序执行以下命令:chmod +x ./configure原创 2015-05-22 14:20:41 · 5179 阅读 · 0 评论 -
面试 之 大小端-ip地址网络转本地 等
0、为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型,另外,对于位数大于 8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。因此就导致了大端存储模式和小端原创 2016-07-22 15:03:14 · 2539 阅读 · 1 评论 -
__ATTRIBUTE__ 你知多少?
__ATTRIBUTE__ 你知多少?GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。__attribute__ 书写特征是:__attribute__ 前后都有两个下划线,并切后面会紧跟一对原括弧,括弧转载 2017-07-01 14:52:20 · 605 阅读 · 0 评论 -
Suricata 3.2.1 源码阅读笔记:数据包队列
简介Suricata中使用队列来缓存数据包,包括缓存线程模块内部新产生数据包的线程内队列,以及线程之间用来传递数据包的线程间队列。用于表示数据包队列的结构体为PacketQueue,其定义如下(省略了调试相关字段):typedef struct PacketQueue_ { Packet *top; /* 头指针 */ Packet *bot; /* 尾指针 */原创 2017-06-12 16:34:02 · 1206 阅读 · 0 评论 -
性能测试的时间间隔获取方法
性能测试的时候,一个问题就是时间间隔,有很多时间函数能获取时间,从而求取时间间隔。关于这方面的文章很多,我就不重复了,这里只是提供一些基本的信息,从而方便我自己做性能测试使用:(1)C语言时间函数clock()和clock_t:time.h中的c语言时间函数clock()能获取当前时间。需要注意的是,这个函数在Windows和Linux下是通用的,但是其返回值的单位是不同的,一个是转载 2017-06-13 17:10:07 · 2911 阅读 · 0 评论 -
线程局部存储-pthread_getspecific和pthread_setspecific使用
在Linux系统中使用C/C++进行多线程编程时,我们遇到最多的就是对同一变量的多线程读写问题,大多情况下遇到这类问题都是通过锁机制来处理,但这对程序的性能带来了很大的影响,当然对于那些系统原生支持原子操作的数据类型来说,我们可以使用原子操作来处理,这能对程序的性能会得到一定的提高。那么对于那些系统不支持原子操作的自定义数据类型,在不使用锁的情况下如何做到线程安全呢?本文将从线程局部存储方面,简单转载 2017-09-07 16:16:01 · 19640 阅读 · 3 评论 -
从PCRE到Hyperscan 性能对比
Hyperscan作为高性能的正则表达式匹配库,使用者通常乐意将其与传统的正则表达式匹配库进行比较。“为什么要用Hyperscan?”“使用Hyperscan对我有怎样的好处?”本文以一款广泛使用的传统的正则表达式匹配库PCRE为例,说明Hyperscan与PCRE的差异与优势。PCRE简介 PCRE是Perl Compatible Regular Expressions的简称,转载 2017-09-07 16:22:38 · 13014 阅读 · 0 评论 -
Hyperscan在Suricata中的应用
Suricata简介Hyperscan作为一款高性能的正则表达式匹配库,极适用于部署在IDS/IPS等网络解决方案中。Suricata(https://suricata-ids.org)是一款免费、开源、成熟、快速、健壮的网络威胁检测引擎,该引擎能够进行实时入侵检测(IDS),嵌入式入侵防御(IPS),网络安全监控(NSM)和离线pcap处理。Suricata与其竞争对手Snort类似转载 2017-09-07 17:32:32 · 4312 阅读 · 0 评论 -
Linux 如何测试 IO 性能(磁盘读写速度)
这几天做MySQL性能测试,偌大一个公司,找几台性能测试机器都很纠结,终于协调到两台,IO的性能如何还不知道。数据库属于IO密集型的应用,所以还是先评估下Server的IO性能,看看是否能和线上的机器匹配上。之前一直知道用dd(device to device)命令可以简单测试磁盘的IO读写速度,但没有深究。但这次做性能测试的关系,需要得到一个相对精确的值(之前的测试吃过这方面的亏转载 2017-09-26 14:37:46 · 7003 阅读 · 0 评论 -
Linux中线程与CPU核的绑定
最近在对项目进行性能优化,由于在多核平台上,所以了解了些进程、线程绑定cpu核的问题,在这里将所学记录一下。 不管是线程还是进程,都是通过设置亲和性(affinity)来达到目的。对于进程的情况,一般是使用sched_setaffinity这个函数来实现,网上讲的也比较多,这里主要讲一下线程的情况。 与进程的情况相似,线程亲和性的设置和获取主要通过下面两个函数来实现:转载 2016-11-29 23:02:45 · 1169 阅读 · 0 评论 -
Linux-常见环境变量及其作用
Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量(称之为 Linux中定制的环境变量)。但是仍有些环境变量是用户都需要的,我们称之为Linux中常见的环境变量,本文只涉及常见的环境变量的简介!Linux中常见的环境变量有:1.PATH:指定命令的搜索路径2.HOME:指定用户的主工作目录(即用户登原创 2016-06-23 16:12:50 · 861 阅读 · 0 评论 -
catdoc
catdocNAMESYNOPSISDESCRIPTIONOPTIONSCHARACTER SETSCHARACTER SUBSTITUTIONRUNTIME CONFIGURATIONBUGSSEE ALSOAUTHORNAME catdoc − reads MS-Word file and puts its conte原创 2015-05-11 16:30:55 · 1220 阅读 · 0 评论 -
C语言调用C++库接口的方法概述
最近需要在由纯c语言编写的代码中调用C++的动态库,在网上找了一些资料,现在总结下解决方法。主要的思想就是将C++的动态库再封装一层,在这一层编写C语言的函数api,这API中使用C++动态库提供的类;具体例子如下:1,假如C++动态库包含如下代码://myclass.h#ifndef _MYCLASS_H#define _MYCLASS_Hclas原创 2015-05-26 11:25:11 · 7546 阅读 · 5 评论 -
Valgrind ---内存调试,内存泄漏检测以及性能分析的软件开发工具
Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind这个名字取自北欧神话中英灵殿的入口。Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O'Reilly开源代码奖。【一】用valgrind对代码进行内存检测的时候,如果提示“Conditional jump or原创 2014-04-03 15:49:39 · 2321 阅读 · 0 评论 -
再谈 内存对齐补齐--提高cpu检索周期效率
首先我们先看看下面的C语言的结构体:[cpp] view plain copy typedef struct MemAlign { int a; char b[3]; int c; }MemAlign; 以上这个结构体占用内存多少空间呢?也许你会说,这个简单,计算每个转载 2016-06-30 15:13:53 · 1287 阅读 · 0 评论 -
Linux下快速删除大量文件/文件夹方法
一、场景描述 假如你要在linux下删除大量文件,比如100万、1000万,像/var/spool/clientmqueue/的mail邮件, 像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf *可能就不好使了。二、解决方案rsync提供了一些跟删除相关的参数rsync --help | grep dele原创 2016-07-12 17:14:38 · 22153 阅读 · 0 评论 -
offsetof ,container_of ,typeof 用法
一、offsetof 概述宏, 定义在头文件 #include offsetof : Retrieves the offset of a member from the beginning of its parent structure.size_t offsetof(structName, memberName);Parameters: st原创 2016-07-01 15:01:54 · 3094 阅读 · 0 评论 -
Shell应用: 搜索文本的几种方法
原文地址:http://www.cppblog.com/qinqing1984/archive/2011/08/20/153971.html方法1:使用find和xargs命令 find dir | xargs grep str,dir是指某个目录 find file | xargs grep str,file是指某个文件 注意:这种方法,会递归搜索子目录转载 2016-07-04 13:39:54 · 2854 阅读 · 0 评论 -
守护进程daemon的创建和使用
一、创建守护进的关键步骤:step 1.创建子进程,父进程退出step 2.在子进程中创建新会话step 3.改变当前目录为根目录step 4.重设文件权限掩码step 5.关闭文件描述符 实例说明:#include #include #include #include #include #define MAXFD 64void demo_init()原创 2016-07-06 15:49:14 · 6929 阅读 · 0 评论 -
iconv 的 使用注意
#include #include #include #include int main(){ char *dest = NULL; size_t destSize = 0; char name[]= {0x52, 0x00, 0x6f, 0x00, 0x6f, 0x00, 0x74, 0x00}; // ROOT -- UNICODE编码 iconv_t cd =原创 2016-07-28 09:12:10 · 2257 阅读 · 0 评论 -
分配空间不足引起的错误:‘Stack smashing detected’
使用环境:ubuntu 11.10、C++出错情景:使用mysql执行一个query语句,以进行一个涉及多个表的联合查询(query语句比较长)代码如下:[cpp] view plain copychar query[128]={0}; sprintf(query, "....."); ...原创 2016-07-08 16:05:56 · 17688 阅读 · 0 评论 -
一些常用函数,as:strnstr,memchr。。。。。
1‘ strnstr // 从 s 串 中 找到 子串 find 并且 返回 find 在s 中的 位置 slen表示find 的长度!。。 1 #include 2 #include 3 char *strnstr( char *s, char *find, size_t slen) 4 { 5 char c, sc; 6原创 2014-02-18 15:37:38 · 7425 阅读 · 1 评论 -
CentOS 7 修改时区
本文转载至:http://mathslinux.org/?p=637Linux 系统(我特指发行版, 没说内核) 下大部分软件的风格就是不会仔细去考虑向后 的兼容性, 比如你上个版本能用这种程序配置, 没准到了下一个版本, 该程序已经不见了. 比如 sysvinit 这种东西.设置时区同样, 在 CentOS 7 中, 引入了一个叫 timedatectl 的设置设置程序.转载 2017-10-17 18:13:18 · 1036 阅读 · 0 评论 -
VirtualBox命令行VBoxManage创建与管理虚拟机教程
VBoxManage is the command-line interface to VirtualBox.前言本文要操作的虚拟机信息如下: 名称: UbuntuRDHome 镜像名称: ubuntu-16.04.3-server-amd64.iso 网络连接: 桥接主机环境: $ uname -a命令输出: Linux Ubuntu...转载 2018-08-27 16:22:07 · 4562 阅读 · 1 评论 -
How to Install VirtualBox 5.2 on CentOS 7
VirtualBox is a free and open-source virtualization software for x86 hardware. It is available for both Windows and Linux like operating system, it is one the most popular virtualization software used...原创 2018-09-05 14:49:22 · 458 阅读 · 0 评论 -
How to Install and Configure VNC Server in CentOS 7
In this guide we’ll explain how to install and configureVNC Remote Accessin latest release ofCentOS 7andRHEL 7Desktop edition viatigervnc-serverprogram.VNC(Virtual Network Computing) is a s...原创 2018-09-05 16:12:02 · 846 阅读 · 0 评论 -
那些年,优秀的配置文件库
我大量使用过的配置文件主要有以下几种:lua python JSON XML和Property list(PLIST) .properties INI YAML在这些中间,我最喜欢的三种格式是: lua、INI 和 YAML ,最不喜欢的是 JSON 。下面简单的说说它们。优秀的配置文件我认为好的配置文件必须包含下面几个因素:1. 规则足够简单2. 人类友好...原创 2019-03-22 15:21:06 · 843 阅读 · 0 评论 -
[mac pip错误]Can‘t connect to HTTPS URL because the SSL module is not available
写前面的话最近,折腾macbook关于python3安装一些软件包,被整的够呛。因为之前安装过py3环境,所以直接想pip 安装需要的依赖包,结果一上来就报错了!Can't connect to HTTPS URL because the SSL module is not available.Brew安装需要安装brew工具/usr/bin/ruby -e "$(curl -fsSL...原创 2019-04-05 21:00:55 · 3226 阅读 · 0 评论 -
https工作原理介绍
大家都知道要使用https,需要在网站的服务器上配置https证书(一般是nginx,或者tomcat),证书可以使用自己生成,也可以向专门的https证书提供商进行购买。这两种的区别是自己生成的证书是不被浏览器信任的,所以当访问的时候回提示不安全的网站,需要点击信任之后才能继续访问自己生成的而购买的https证书会提示安全DV,OVEV这是因为浏览器中预置了...转载 2019-04-09 13:35:54 · 212 阅读 · 0 评论 -
【闲扯】shell 获取不到返回值?
背景这个问题,有点让人蛋疼了。具体是要获取ntpdate 同步返回的数据,用于判断ntpdate 是否执行成功。。。。但是shell愣是拿不到返回数据,明明界面有打印了啊。纠结ing (ー`´ー)一般情况下获取shell的返回数据 这还不是很容易的一件事情嘛!#!/bin/bashcheck_results=`iscsiadm --version | grep iscsiadm`ec...原创 2019-08-14 17:53:51 · 765 阅读 · 0 评论 -
到处是“坑”的strtok()—解读strtok()的隐含特性
在用C/C++实现字符串处理逻辑时,strtok函数的使用非常广泛,其主要作用是按照给定的字符集分隔字符串,并返回各子字符串。由于该函数的使用有诸多限制,如果使用不当就会造成很多“坑”,因此本文首先介绍那些经常误踩的坑,然后通过分析源代码,解读该函数的诸多隐含特性,以便对该函数有个全面的理解,不再被坑。那些年一起踩过的坑TOP1 不可重入目前大部分程序都是在多线程环境下运行的,因此函数的可重...转载 2019-09-06 17:05:33 · 3965 阅读 · 1 评论 -
Linux 操作系统修改源的方法总结【持续更新】
有时候CentOS默认的yum源不一定是国内镜像,导致yum在线安装及更新速度不是很理想。这时候需要将yum源设置为国内镜像站点。国内主要开源的开源镜像站点应该是网易和阿里云了。一、centos系统修改CentOS默认yum源为mirrors.163.com1、首先备份系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repo[root@local...原创 2018-07-31 15:58:03 · 4691 阅读 · 2 评论 -
demo
#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <string.h>#include <arpa/inet.h>#define SERVER_PORT 3333#de...原创 2018-07-18 16:07:25 · 146 阅读 · 0 评论 -
安装kali linux 2018.07
安装kali linux 2017.1 【一、更新源 升级软件和内核等】呃,我这次安装是在VMware WorkStation里进行的,具体操作系统安装步骤不谈。ISO文件下载地址:https://www.kali.org/downloads/说下安装后的升级操作。下面的操作都是在root下进行的,避免有些指令不可用或文件打不开。1. 先确定自己是什么版本:lsb_release -a2. 用文本...转载 2018-07-05 14:19:12 · 2924 阅读 · 0 评论 -
centos7重新调整分区大小
centos 7 调整 root 和 home 的容量大小查看磁盘的空间大小: df -h 备份/home : cp -r /home/ homebak/卸载 /home : umount /home 如果出现 home 存在进程,使用 fuser -m -v -i -k /home 终止 home 下的进程,最后使用 umount /home 卸载 /hom转载 2017-10-19 21:20:44 · 11668 阅读 · 0 评论 -
CentOS 7系统安装配置图解教程
操作系统:CentOS 7.3备注:CentOS 7.x系列只有64位系统,没有32位。生产服务器建议安装CentOS-7-x86_64-Minimal-1611.iso版本回到顶部一、安装CentOS 7.3 成功引导系统后,会出现下面的界面 界面说明: Install CentOS 7 #安装Ce转载 2017-10-20 16:37:13 · 132495 阅读 · 6 评论 -
grub filesystem type unknown ---记一次引导错误解决日志
事件: 上次安装系统时候分区存在问题,终端下 手动执行分区 不知咋地 系统启动 报 grub 失败。。。 当时那叫个郁闷,于是乎 摆渡! --- http://blog.csdn.net/wangyuchen890119/article/details/7338022,依旧不行解决方式: 既然常用的 方式解决不了 那就走极端方式,引导程序失败,找不到grub原创 2017-11-06 19:28:44 · 2153 阅读 · 0 评论 -
网卡多队列-转载原文地址:http://blog.chinaunix.net/uid-24830931-id-3352000.html
在使用pf_ring的过程中,发现pf_ring有自身的rss功能。网卡已经有了rss(receive side scaling)功能,pf_ring的rss有何存在的必要?通过测试,发现Intel 82599的rss功能不能保证同一个流被分配到队列上 (同一个流的五元组是不同的,IN方向的是[PROTO, SIP, SPORT, DIP, DPORT],out方向的则是[PR转载 2017-11-10 17:28:58 · 1081 阅读 · 1 评论 -
modprobe和insmod的区别
在Linux中,modprobe和insmod都可以用来加载module,不过现在一般都推荐使用modprobe而不是insmod了。modprobe和insmod的区别是什么呢?1.modprobe可以解决load module时的依赖关系,比如load moudleA就必须先load mouduleB之类的,它是通过/lib/modules//modules.dep文件来查找依转载 2017-12-24 13:40:34 · 4661 阅读 · 0 评论