
linux
斷點1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
container of()函数简介
原文链接:https://blog.csdn.net/s2603898260/article/details/79371024转载 2019-05-06 19:54:33 · 486 阅读 · 0 评论 -
Linux 中常用的文本(行)处理命令
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]Linux 中常用的文本行处理命令正则表达式regular expression元字符如下图是正则表达式中含有的字符在正则表达式中可以在字符串中使用元字符以匹配字符串的各种可能的情况find命令cut命令4awk工具5sed工具wc命令tee命令tr命令col命令expand命令jo转载 2016-06-22 15:41:30 · 993 阅读 · 1 评论 -
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结,看完全明白了
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等。咋一看,好像是个新的数据类型,不过C语言(nesc是C的扩展)里面好像没有这种数据类型啊!怎么又是u又是_t的?很多人有这样的疑问。论坛上就有人问:以*_t结尾的类型是不是都是long型的?在baidu上查转载 2016-07-06 15:13:26 · 947 阅读 · 0 评论 -
Linux 代码格式化工具 indent
linux kernel有一个脚本Lindent,没有的可以装一下,sudo sudo apt-get install indent可以帮助你将自己的代码做一个好的代码风格格式化。如:/usr/src/linux-headers-2.6.22-14/scripts/Lindent常用的设置:indent -npro -kr -i4 -ts4 -sob -l80 -ss -bl转载 2016-05-26 15:40:03 · 5325 阅读 · 0 评论 -
c语言正则表达式应用
正则表达式是能极大地提高工作效率的工具,使用过Linux下各种具备RE特性的工具的人一定对此深有感触。很多语言都支持RE,用的最多的当然是脚本,其中以perl最盛。不过,用C语言来用RE不是很多见,但是有时候也很有用,我最近也是看到别人说道这个,所以搜了一些资料加上自己的体会来说一说RE在C语言里的应用。C语言本身不具备RE特性,但是有很多库,在Linux下你可以很方便的使用regex.h提供的库原创 2015-10-12 14:24:01 · 1041 阅读 · 0 评论 -
单引号在字符处理时的作用
如system_ex("zip %s/'%s' %s -qj", dest_dir, zip_name, bill_src_path);如果zip_name里面包含空格或者$之类的特殊字符,就必须加单引号。mkdir 'a b' 创建带空格的文件夹mkdir 'a$b' 创建带$的文件夹不加单引号会创建失败原创 2015-10-21 16:07:21 · 1198 阅读 · 0 评论 -
Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
在源代码里面如果这样是定义的:#ifdef MACRONAME//可选代码#endif那在makefile里面gcc -D MACRONAME=MACRODEF或者gcc -D MACRONAME 这样就定义了预处理宏,编译的时候可选代码就会被编译进去了。对于GCC编译器,有如下选项: -D macro=string原创 2015-10-21 10:46:55 · 3100 阅读 · 1 评论 -
Linux 快速操作IO端口
在嵌入式设备中对GPIO的操作是最基本的操作。一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的。其实linux下面有一个通用的GPIO操作接口,那就是我要介绍的 “/sys/class/gpio” 方式。首先,看看系统中有没有“/sys/class/gpio”这个文件夹。如果没有请在编译内核的时候加入 Device Drivers —> GPIO Support —>原创 2015-08-12 15:09:40 · 3985 阅读 · 0 评论 -
Sublime Text3 中文输入(不需要安装gtk及其他库)
最近在用sublime text3 ,感觉这个编辑软件非常好用,唯一美中不足的是它,他,她不支持中文输入。很让人头疼,还要在别的编辑器上面拷贝,所以上网搜了好多资料,发现都是说建立编译环境,要安装gtk,libgtk,还有一些其他的库。搞得系统很乱很乱,到最后也没有编译通过,太麻烦了。这其实只需要下载一个插件,就一切ok了。下载InputHelper.tar.gz这个插件,大家可以在网上下原创 2015-04-01 10:12:54 · 1104 阅读 · 1 评论 -
NFS服务器安装配置实现Ubuntu 12.04与ARM开发板文件共享
实现步骤:1.服务器端:sudo apt-get install portmap2.服务器端:sudo apt-get install nfs-kernel-server3.客户端:sudo apt-get install nfs-common4.服务器端配置:sudo gedit /etc/exports添加:/home *(rw,sync,原创 2015-03-09 15:38:55 · 862 阅读 · 0 评论 -
Linux的nm查看动态和静态库中的符号
功能列出.o .a .so中的符号信息,包括诸如符号的值,符号类型及符号名称等。所谓符号,通常指定义出的函数,全局变量等等。使用nm [option(s)] [file(s)]有用的options:-A 在每个符号信息的前面打印所在对象文件名称;-C 输出demangle过了的符号名称;-D 打印动态符号;-l 使用对象文件中的调试信息打印出所在原创 2015-02-28 17:25:38 · 4192 阅读 · 0 评论 -
LINUX SAMA5D3启动SD卡制作步骤
将SD卡经过读卡器插入虚拟机内,执行如下命令检测挂在位置。mount | grep /media卸载SD卡sudo umount /dev/sdxx 用“dd”命令清除MRB和分区信息:sudo dd if=/dev/zero of=/dev/sdx bs=10M count=1用“fdisk”命令修改分区表sudo fdisk /dev/sdx按“P”键显示当原创 2015-02-11 13:54:19 · 1590 阅读 · 0 评论 -
linux设备调试信息输出
linux设备驱动调试,我们在内核中看到内核使用dev_dbg来控制输出信息,这个函数的实质是调用printk(KERN_DEBUG )来输出打印信息。要打开这个开关需要下面两步。 1、打开调试开关:你调试的文件中必然包含了,或者《linux/paltforam_device.h》,后者包含了前者,在包含此头文件之前,使用#define DEBUG 1 来打开调试开关:例如#inc转载 2015-01-18 23:18:57 · 806 阅读 · 0 评论 -
Linux system函数返回值及system扩展函数
例:[cpp] view plain copystatus = system("./test.sh"); 1、先统一两个说法:(1)system返回值:指调用system函数后的返回值,比如上例中status为system返回值(2)shell返回值:指system所调用的shell命令的返回值,比如上例转载 2016-08-01 17:00:01 · 733 阅读 · 0 评论 -
CENTOS7 snort 轻量级入侵检测系统安装与使用
snort 是一个开源的轻量级入侵检测系统(NIDS),使用C语言编写。支持windows、Linux平台,我比较喜欢linux操作系统,所以在linux上学习研究snort。snort有三种工作模式,包括:嗅探、记录数据包、入侵检测。但是,可以把snort配置成入侵防御的模式,过程算是复杂。作为一个轻量级的入侵检测系统,snort功能算是单一,配置复杂,有利于入侵检测系统源码研究与规则编写。sn原创 2017-06-20 17:32:00 · 3903 阅读 · 0 评论 -
rsyslogd、syslog远程传输、日志存储、转存
一、产生本地日志1、/etc/resolv.conf 配置文件local0~local7是用户自定义的日志这里我们使用local1,添加以下 local1.* /www/admin/admin/log/web_log配置完需要重启 rsyslogd程序 /etc/init.d/rsyslog restart2、程序中用以下记入日志 openl原创 2017-06-10 16:48:01 · 17663 阅读 · 0 评论 -
利用__attribute__((section()))构建初始化函数表与Linux内核init的实现
传统的应用编写时,每添加一个模块,都需要在main中添加新模块的初始化 使用__attribute__((section()))构建初始化函数表后,由模块告知main:“我要初始化“,添加新模块再也不需要在main代码中显式调用模块初始化接口。以此实现main与模块之间的隔离,main不再关心有什么模块,模块的删减也不需要修改main。那么,如何实现这个功能呢?如何实现DE...转载 2018-12-18 15:50:46 · 684 阅读 · 0 评论 -
Linux下的I/O复用与epoll详解
前言 I/O多路复用有很多种实现。在linux上,2.4内核前主要是select和poll,自Linux 2.6内核正式引入epoll以来,epoll已经成为了目前实现高性能网络服务器的必备技术。尽管他们的使用方法不尽相同,但是本质上却没有什么区别。本文将重点探讨将放在EPOLL的实现与使用详解。为什么会是EPOLLselect的缺陷 高并发的核心解决方案是1个...转载 2018-12-14 15:17:10 · 263 阅读 · 0 评论 -
LVS NAT模式搭建
1、原理图 2、ip配置机器名称 ip配置 ip配置附加 备注信息 lvs调度器 192.168.3.73(VIP) 192.168.200.70(DIP) 有2个网卡地址 RS1 192.168.200.65(RIP) rs1,rs2属于同一网段,能访问DIP RS2 192.168.200.67(RIP...原创 2018-10-30 16:59:35 · 347 阅读 · 0 评论 -
LVS三种工作模式以及最主流的DR模式搭建流程
LVS常用的工作模式有NAT、DR、和TUN三种,其中DR模式性能最为优越,使用最为广泛NAT模式:网络地址转换NAT(Network Address Translation)是一种外网和内网地址映射的技术。NAT模式下,数据的进出都要经过LVS的处理。LVS需要作为Real Server(真实服务器)的网关。当包到达LVS时,LVS做目标地址转换(DNAT),将目标IP改为Real Serve...转载 2018-10-30 10:46:02 · 575 阅读 · 0 评论 -
rsyslogd、syslog远程传输、日志存储、转存
一、产生本地日志1、/etc/resolv.conf 配置文件local0~local7是用户自定义的日志这里我们使用local1,添加以下 local1.* /www/admin/admin/log/web_log配置完需要重启 rsyslogd程序 /etc/init.d/rsyslog restart2、程序中用以下记入日志 openlog("audit_as_cgi", LOG...原创 2018-06-22 17:19:16 · 2370 阅读 · 0 评论 -
最高效的进(线)程间通信机制--eventfd
我们常用的进程(线程)间通信机制有管道,信号,消息队列,信号量,共享内存,socket等等,其中主要作为进程(线程)间通知/等待的有管道pipe和socketpair。线程还有特别的condition。今天来看一个liunx较新的系统调用,它是从LINUX 2.6.27版本开始增加的,主要用于进程或者线程间的通信(如通知/等待机制的实现)。头文件编辑#include <sys/event...原创 2018-05-15 17:20:48 · 5822 阅读 · 0 评论 -
Linux 进程资源限制 getrlimit和setrlimit函数
功能描述:获取或设定资源使用限制。每种资源都有相关的软硬限制,软限制是内核强加给相应资源的限制值,硬限制是软限制的最大值。非授权调用进程只可以将其软限制指定为0~硬限制范围中的某个值,同时能不可逆转地降低其硬限制。授权进程可以任意改变其软硬限制。RLIM_INFINITY的值表示不对资源限制。用法:#include int getrlimit(int resou转载 2018-01-17 09:23:38 · 461 阅读 · 0 评论 -
c实现 ip、掩码 计算网段
#define BYTE_LEN 8#define BYTE_NUM 4#define NET_SEGMENT_SIZE 64int strtok_str(uint8_t * p[], int max_p_num, uint8_t * str, const uint8_t * spl){ int in = 0; uint8_t *buf = str;原创 2018-01-05 11:12:26 · 3162 阅读 · 0 评论 -
lighttpd (http、https)安装SSL证书
1、简介:Lighttpd是一个轻量级的Web服务器,支持FastCGI, CGI, Auth,输出压缩(output compress), URL重写, Alias等重要功能。它具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。其静态文件的响应能力远高于Apache,可谓Web服务器的后期之秀。所以我们采用Lighttpd作为web通信的服务器。 配置文件:Lightt...原创 2017-12-06 17:56:21 · 4229 阅读 · 0 评论 -
hiredis认证加密
原创 2017-10-12 14:44:10 · 733 阅读 · 0 评论 -
遍历MAC地址(从00-00-00到FF-FF-FF)
unsigned int str_to_hex(const char str[2]){ unsigned int num[2]={0}; int i=0; for(i=0;i { if (str[i] >= '0' && str[i] {num[i] = str[i] - '0';}else if (str[i原创 2017-08-30 15:27:58 · 2188 阅读 · 0 评论 -
Linux 平台gsoap简单使用
gsoap下载地址:https://sourceforge.net/projects/gsoap2/?source=typ_redirect1、编译生成soapcpp2下载解压之后 跳转gsoap-2.8 目录,执行./configurecd gsoap/ 执行 make会在src目录下生成soapcpp22、创建test目录新建a原创 2017-04-08 15:21:20 · 508 阅读 · 0 评论 -
rsyslog、logrotate切割保存日志日期不准确的问题
相信用过rsyslogd logrotate转存切割日志的同学,都会发现日志转存后的文件,会出现日期不准确的问题例如:6月21号生成的日志,无缘无故转存到了6月22号的文件里,日期提前了一天。又或者就算21号的日志转存到了21号的文件里,当你打开却发现里面的内容有20号。经过几天的验证,终于发现有一种方法,几乎做到了安全按照每天来清晰的分隔日志。就在上篇文章中大致介绍了做法,原创 2017-06-22 09:06:39 · 5242 阅读 · 1 评论 -
数据结构:循环队列(C语言实现)
生活中有很多队列的影子,比如打饭排队,买火车票排队问题等,可以说与时间相关的问题,一般都会涉及到队列问题;从生活中,可以抽象出队列的概念,队列就是一个能够实现“先进先出”的存储结构。队列分为链式队列和静态队列;静态队列一般用数组来实现,但此时的队列必须是循环队列,否则会造成巨大的内存浪费;链式队列是用链表来实现队列的。这里讲的是循环队列,首先我们必须明白下面几个问题一、循环队列的基础知识转载 2014-12-12 14:30:08 · 1106 阅读 · 1 评论 -
rtl8723wifi(蓝牙模块)模块移植
驱动跟内核配置就不多说l原创 2014-11-03 18:18:35 · 7070 阅读 · 4 评论 -
Linux软连接和硬链接
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的转载 2014-11-17 10:28:55 · 579 阅读 · 0 评论 -
linux内核中、Makefile、Kconfig 、.config作用
Makefile:一个文本形式的文件,其中包含一些规则告诉make编译哪些文件以及怎样编译这些文件。 Kconfig:一个文本形式的文件,其中主要作用是在内核配置时候,作为配置选项。 .config:文件是在进行内核配置的时候,经过配置后生成的内核编译参考文件。Kconfig1.先了解一下Kconfig的语法: 一个典型的内核配置原创 2014-11-12 19:53:50 · 1389 阅读 · 0 评论 -
Makefile自动生成工具-----autotools的使用
相信每个学习Linux的人都知道Makefile,这是一个很有用的东西,但是编写它是比较复杂,今天介绍一个它的自动生成工具,autotools的使用。很多GNULinux的的软件都是用它生成Makefile的,包括我们非常熟悉的Linux内核源代码。 1、准备: 需要工具 autoscan aclocal autoheader转载 2014-10-27 20:25:51 · 902 阅读 · 0 评论 -
linux中select 方法延迟
首先搞清楚select的返回值,代表些什么。原创 2014-10-27 16:21:13 · 3522 阅读 · 0 评论 -
sublime text 3 快捷键大全以及配置编译环境
Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+Shift+L:选择多行Ctrl+Shift+En转载 2014-10-25 16:30:42 · 544 阅读 · 0 评论 -
localtime 和 localtime_r
[c-sharp] view plaincopy#include #include #include #include using namespace std; int main(int argc, char *argv[]) { time_t tNow =time(NULL);转载 2014-10-25 14:49:34 · 596 阅读 · 0 评论 -
_IO, _IOR, _IOW, _IOWR 宏的用法与解析
[cpp] view plaincopy#define PSTN_GET_BLOCKSIZE _IOR (PSTN_CODE, 1, int) /* Get Transfer Block Size. */ #define PSTN_SET_BLOCKSIZE _IOW (PSTN_CODE, 2, int) /* Set Transfer Bl转载 2014-10-25 11:56:53 · 884 阅读 · 0 评论 -
./configure 的参数解析
Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。'configure'脚本有大量的命令行选项。对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是原创 2014-10-22 14:37:26 · 800 阅读 · 0 评论 -
convert命令格式: -resize widthxheight{%} {@} {!} {<} {>} {^}
1. 默认时,宽度和高度表示要最终需要转换图像的最大尺寸,同时Convert会控制图片的宽和高,保证图片按比例进行缩放。如:convert -resize 600×600 src.jpg dst.jpg转换后的dst.jpg的图片大小(宽度为600,而高度已经按比例调整为450).2.如果需要转换成600×600,而图片无需保持原有比例,可以在宽高后面加上一个感叹号!.转载 2014-09-17 11:18:01 · 1965 阅读 · 0 评论