代码改变世界

随笔分类 -  C++开发

Makefile里面打印信息

2020-12-19 22:52 by 宋海宾, 1400 阅读, 收藏, 编辑
摘要: Makefile里面打印信息 Makefile的规则相对来说还是比较复杂的,上手不容易,没有系统研究过,往往搞不清楚状况。如果掌握了基本的调试手段,那对我们写出正确的Makefile会非常有帮助。而在Makefile中,最重要的调试手段莫过于输出信息。 Makefile中需要打印信息,可以通过如下方 阅读全文

git describe

2020-12-19 22:40 by 宋海宾, 935 阅读, 收藏, 编辑
摘要: git describe 显示当前离当前提交最近的tag 如果符合条件的tag指向最新提交则只是显示tag的名字,否则会有相关的后缀来描述该tag之后有多少次提交以及最新的提交commit id。不加任何参数的情况下,git describe 只会列出带有注释的tag e.g. $ git desc 阅读全文

Makefile 中:= ?= += =的区别

2020-12-19 22:30 by 宋海宾, 105 阅读, 收藏, 编辑
摘要: 在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验 新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendif ifeq ($(OPT),define) VRE ?= 阅读全文

makefile 中.PHONY的作用

2020-12-19 18:35 by 宋海宾, 413 阅读, 收藏, 编辑
摘要: 一.实例 拿clean举例,如果make完成后,自己另外定义一个名叫clean的文件,再执行make clean时,将不会执行rm命令。 为了避免出现这个问题,需要.PHONY: clean 图示:(1)不添加.PHONY:clean在Makefile所在的目录下touch一个clean文件运行ma 阅读全文

__stdcall、__fastcall,__cdecl的差别

2020-11-01 12:54 by 宋海宾, 330 阅读, 收藏, 编辑
摘要: _stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针。这些堆栈中的参数由被调用的函数在返回后清除,使用的指令是 retnX,X表示参数占用的字节数,CPU在ret之后自动弹出X个字节的堆栈空间。称为自 阅读全文

Linux 进程CPU占用率和内存占用率编程

2020-10-20 16:56 by 宋海宾, 1064 阅读, 收藏, 编辑
摘要: Linux下没有直接可以调用系统函数知道CPU占用和内存占用。那么如何知道CPU和内存信息呢。只有通过proc伪文件系统来实现。 proc伪文件就不介绍了,只说其中4个文件。一个是/proc/stat,/proc/meminfo,/proc/<pid>/status,/proc/<pid>/stat 阅读全文

Linux 编程绑定特定CPU运行

2020-10-20 16:50 by 宋海宾, 704 阅读, 收藏, 编辑
摘要: 为了让程序拥有更好的性能,有时候需要将进程或线程绑定到特定的CPU上,这样可以减少调度的开销和保护关键进程或线程。 1、绑定进程到指定的CPU Linux提供一个接口,可以将进程绑定到特定的CPU: #include <sched.h> int sched_setaffinity(pid_t pid 阅读全文

linux 删除文件unlink使用

2020-10-13 16:00 by 宋海宾, 1334 阅读, 收藏, 编辑
摘要: 一、头文件 #include<unistd.h> 二、函数原型 int unlink(const char *pathname); 三、函数介绍 unlink()函数功能即为删除文件。执行unlink()函数会删除所给参数指定的文件。 注意: 执行unlink()函数并不一定会真正的删除文件,它先会 阅读全文

linux access函数用法分析

2020-10-13 14:29 by 宋海宾, 4653 阅读, 收藏, 编辑
摘要: #include<unistd.h> int access(const char* pathname, int mode); 参数介绍: pathname 是文件的路径名+文件名 mode:指定access的作用,取值如下 F_OK 值为0,判断文件是否存在 X_OK 值为1,判断对文件是可执行权限 阅读全文

C 库函数 - getenv

2020-10-13 14:23 by 宋海宾, 236 阅读, 收藏, 编辑
摘要: C 库函数 - getenv() C 标准库 - <stdlib.h> 描述 C 库函数 char *getenv(const char *name) 搜索 name 所指向的环境字符串,并返回相关的值给字符串。 声明 下面是 getenv() 函数的声明。 char *getenv(const c 阅读全文

C++原子操作sig_atomic_t

2020-10-12 17:47 by 宋海宾, 873 阅读, 收藏, 编辑
摘要: sig_atomic_t这个类型是定义在signal.h文件中。 当把变量声明为该类型会保证该变量在使用或赋值时, 无论是在32位还是64位的机器上都能保证操作是原子的, 它会根据机器的类型自动适应。 这个类型是定义在signal.h文件中。下面来说说这个类型。 在处理信号(signal)的时候,有 阅读全文

Linux限制CPU的占用率

2020-09-25 15:37 by 宋海宾, 1886 阅读, 收藏, 编辑
摘要: 运维生存时间的云服务器也用了大半年了,随着上面的程序越来越多,cpu有时候会力不从心,有些进程是可以限制cpu的.cpuliimt完美的解决了这个问题。cpulimit安装使用都非常简单,大家往下看。 1. cpulimit安装1.1 Ubuntu/Debian: 1 # apt-get insta 阅读全文

Mysql 具体的协议格式

2020-09-24 20:23 by 宋海宾, 650 阅读, 收藏, 编辑
摘要: git https://github.com/sea-boat/mysql-protocol 格式介绍 https://dev.mysql.com/doc/internals/en/overview.html 概况 mysql客户端与mysql服务端交互过程中,当服务端完成客户端的某命令时则会返回O 阅读全文

网络抓报文TCPDUMP

2020-09-24 17:47 by 宋海宾, 598 阅读, 收藏, 编辑
摘要: # 1。 安装yum install tcpdump保存报文到一个文件中的方式: tcpdump 'dst port 3306 or src port 3306' -w capmysql.cap PC 机源地址:106.11.34.10.27926 iz8vb1p4olazw5f54audn3z.1 阅读全文

lex与yacc学习

2020-09-16 15:32 by 宋海宾, 746 阅读, 收藏, 编辑
摘要: 1. 简介 在开发程序的过程中经常会遇到文本解析的问题,例如:解析C语言源程序,编写 脚本引擎等等,解决这种文本解析的方法有很多,一种方法就是自己手动用C或者 C++直接编写解析程序,这对于简单格式的文本信息来说,不会是什么问题,但是 对于稍微复杂一点的文本信息的解析来说,手工编写解析器将会是一件漫 阅读全文

libpcap编译

2020-09-16 14:43 by 宋海宾, 515 阅读, 收藏, 编辑
摘要: $ wget http://www.tcpdump.org/beta/libpcap-1.2.0rc1.tar.gz $ tar xf libpcap-1.2.0rc1.tar.gz && cd libpcap-1.2.0rc1 $ ./configure && make $ find -name 阅读全文

libpcap编程介绍

2020-09-15 20:15 by 宋海宾, 185 阅读, 收藏, 编辑
摘要: https://www.tcpdump.org/pcap.html im Carstenstimcarst at yahoo dot comFurther editing and development by Guy Harrisguy at alum dot mit dot edu Ok, let 阅读全文

libnids学习笔记

2020-09-15 20:12 by 宋海宾, 164 阅读, 收藏, 编辑
摘要: 阅读全文

libpcap 介绍

2020-09-15 19:50 by 宋海宾, 276 阅读, 收藏, 编辑
摘要: gitlib https://github.com/the-tcpdump-group/libpcap 阅读全文

libnids 介绍

2020-09-15 19:20 by 宋海宾, 2062 阅读, 收藏, 编辑
摘要: 一.前言 Libnids是一个用于网络入侵检测开发的专业编程接口,它使用Libpcap进行数据包的捕获。同时,Libnids提供了TCP/IP数据流重组功能,因此省去了应用层自己考虑数据分片、重传等情况的麻烦。它是模仿了Linux 2.0.x的IP协议栈进行数据处理,因此非常稳定可靠。当然,libn 阅读全文
点击右上角即可分享
微信分享提示