自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

li

Talk is cheap,Show me the code. ——Linus Torvalds

  • 博客(89)
  • 资源 (3)
  • 收藏
  • 关注

原创 Epoll 服务器的一种通用框架,epoll_data_t 的使用

一、前言前面已经介绍过一个原始结构epoll服务器的使用,原文请点击查看:epoll原始结构服务器现在,我将在原epoll服务器的基础上对epoll的用法进行改进,进一步简化epoll服务器的编码方式,这种框架在大型项目中十分高效,正所谓框架搭的好,往里面填“dog shit”都不会有问题。这当中,我们需要用到一个简单的消息封装结构,这在通信中十分常见,类似于一种伪协议,只有内部通用。...

2018-08-19 17:37:50 2684 5

原创 快速排序及多线程快排优化 & 选择 & 归并排序

一、写在前面1.回调函数:用到函数指针,即指向函数的指针,这在代码框架结构设计中十分简洁高效,看代码typedef enum tagSORT_FUNC{ SELECT_SORT= 0, MERGE_SORT, QUICK_SORT, SORT_FUNC_MAX}SORT_FUNC_E;typedef void (*SORT_CALLBACK_PF...

2018-08-18 20:11:49 1615

原创 C语言字符串替换函数strrpl

// 参数说明: // in, 源字符串 // out, 存放最后结果的字符串 // outlen,out最大的大小 // src,要替换的字符串 // dst,替换成什么字符串 char *strrpl(char *in, char *out, int outlen, const char *src, char *dst) { char *p = in; unsigned int len = outlen - 1; // 这几段检查.

2021-10-14 16:02:08 1208

原创 字符串替换strrpl与字符串转大写strupr

strlwr()和strupr()不是标准库函数,只能在windows下(VC、MinGW等)使用,Linux GCC中需要自己定义。strupr()用于将字符串中的字符转换为小写,其原型为:char *strupr(char *str);【参数说明】str为要转换的字符串。【返回值】返回转换后的大写写字符串,其实就是将str返回。也就是说,strupr() 不会创建一个新字符串返回,而是改变原有字符串。所以strupr()只能操作字符数组,而不能操作指针字符串,因为指针指向的字

2021-09-02 18:01:43 479

原创 双向链表实现(C语言)

1. 概念百度百科:双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。...

2021-06-17 21:58:24 1730 3

原创 单向链表实现(C语言)

单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) +指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。...

2021-06-11 12:01:18 1380

转载 模块化程序设计(多文件编程)介绍

转自:https://blog.csdn.net/liitdar/article/details/80017744本文介绍模块化程序设计(多文件编程)的概念及相关用法示例。1. 概述模块化程序设计是指在进行程序设计时,将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,然后在这些小程序模块之间建立必要的联系,通过这些小程序模块的互相协作,完成整个大程序功能的程序设计方法。这里需要说明的是,模块化程序设计(开发)并非专指多文件编程,模块化程序设计(开发)的重点在于小功能

2021-06-08 19:30:39 1644

转载 C++ STL容器简介

转载自:https://zhuanlan.zhihu.com/p/112810801 原文如下在这里插入代码片所有代码都在Visual Studio 2017下测试过,应该是C++14标准。1 std::string头文件:<string>功能:提供一系列字符串的操作生成一个std::string对象using namespace std;string strs; // 生成一个空的字符串string s(str); //生成一个和str内容完全相同的字符串(浅拷贝)string s(s

2021-04-21 16:23:31 77

原创 Python-特殊方法(迭代器,生成器,内建方法,运算符重载)

Python是一门独特的语言,力求简洁,它甚至不像某些语言(如Java)提供接口语法,Python语言采用的是“约定”规则,它提供了大量具有特殊意义的方法,这些方法有些可以直接使用,有些需要开发者重写。掌握这些方法是使用Python面向对象编程的基础。目录1.常见的特殊方法1.1 重写__repr__方法1.2.析构方法__del__Python的垃圾回收机制1.3.__di...

2020-03-21 15:24:31 379

原创 Python 日志按天输出

#定义日志按天输出 LOGGING_MSG_FORMAT = '[%(asctime)s] [%(levelname)s] [%(module)s] [%(funcName)s] [%(lineno)d] %(message)s' LOGGING_DATE_FORMAT = '%Y-%m-%d %H:%M:%S' logging.basicConfig(leve...

2020-03-19 10:39:40 2057

原创 Python-类和对象(面向对象编程)

Python在设计之初就被设计成支持面向对象的编程语言。实际上Python既能够面向过程,也可以面向对象编程。Python的面向对象比较简单,不像其他的面向对象语言提供了大量的繁杂的特征,它治理与提供简单的,够用的语法和功能。下面来逐一介绍Python的面向对象特性:1.命名空间Python的类在很大程度上是一个命名空间,当程序在类体中定义变量,方法时,与前面介绍的定义变量,定义函数并...

2020-03-18 00:12:58 462

转载 JAVA中逻辑运算符“|”和“&”与“||”和“&&”的用法

1.使用规则:(1)& 可以用作逻辑与的运算符,表示逻辑与(and) a、当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false b、无论第一个判断条件是否成立,逻辑运算符前后两个条件都会进行判断(2)&& 可以用作逻辑与的运算符,表示逻辑与(and) a、当运算...

2020-02-20 15:31:09 982 1

原创 Python实现FTP上传本地文件和目录

最近在做一个稽核任务,需要FTP登录服务器下载文件到本地和上传文件到服务器,参考了不少例子,功能都太单一,很少能直接拿来使用,于是自己写了一个。FTP下载文件到本地请参考前一篇Python实现FTP下载远端文件和目录一 . 几个模块from ftplib import FTPftp = FTP() #设置变量ftp.set_debuglevel(2) #打开调试级别2 显示详细信息...

2020-01-03 18:08:03 6190 2

原创 Python 多进程及字典一个键多个值的应用——均衡分发文件到不同目录

在做一个稽核任务的时候,由于文件量巨大,要同时启用多个进程处理,这样就涉及均衡地分发文件。一般来说数据处理的文件名中会有数字0-9与字母a-z组合。我们可以根据其中某一个位置的数字或字母将文件均匀地分发到多个目录。如数字0发到目录1-10,数字1分发到目录11-20 ,依次类推。Python的字典先可以让我们很方便的用好这个特性。rule_path={'0':('/billdata7/da...

2019-12-31 15:33:52 370

原创 Python解析XML文件

此篇仅作学习笔记使用,有关xml解析的例子请看:菜鸟教程 Python XML 解析xml文件的例子:<?xml version="1.0" encoding="utf-8" ?><coll_audit> <collection id="001"> <collname>SMSC_AO8</collname&g...

2019-12-21 18:07:23 135

原创 Python实现FTP下载远端文件和目录

最近在做一个稽核任务,需要FTP登录服务器下载文件到本地,参考了不少例子,功能都太单一,很少能直接拿来使用,于是自己写了一个。一 . 几个模块from ftplib import FTPftp = FTP() #设置变量ftp.set_debuglevel(2) #打开调试级别2 显示详细信息ftp.connect("IP", "port") #连接ftp, IP和端口ftp.l...

2019-12-21 17:36:46 3105

原创 Python编程-让繁琐的工作自动化(十一)从Web爬取信息

目录1.webbrowser模块1.1 弄清楚URL1.2 处理命令行参数2. 用requests模块从Web下载文件2.1 用requests.get()函数下载一个网页2.2 检查错误2.3 将下载的文件保存到硬盘3. 用BeautifulSoup模块解析HTML3.1 从HTML创建一个BeautifulSoup对象4. 小项目《1》:查找一个话...

2019-11-04 23:53:48 1810

原创 Python ZIP压缩文件夹

直接上代码,仅做学习笔记用,核心代码bak_one_dir_by_zip函数 try-except内#! /usr/bin/python # -*- coding: utf-8 -*import loggingimport os, sysimport zipfileimport timeimport tracebackimport reimport subprocess #获...

2019-10-15 10:30:45 884

原创 Makefile C与C++混编的简单写法

目录结构:socket中是基本的socket类,except是捕捉异常类,include 是头文件,basetype.h等,主程序文件在当前目录#TARGET : 目标文件#OBJ_DIR_THIS : 中间文件存放目录#COMPILE.cpp和COMPILE.c : 编译#LINK.cpp和LINK.c : 链接#SOURCE_PATHS : 源码.c和.cpp存放目录,多个目...

2019-09-06 18:05:36 1562

原创 Python split拆分字符&join组合字符的一个例子

在做Oracle数据库导出到TXT文件,又从TXT文件导入数据库的时候,遇到一个问题,其中某些字段的值为null,那么在导入TXT文本的时候,在TXT文本中各个字段之间两个分隔符例如','逗号,两个逗号之间没有内容的即为null,其实这可以通过sqlldr如下的的控制语句解决,但一开始不知道,因此自己写了个python脚本,根据理解对生成的去除了所有空白字符的TXT文件根据分隔符','来做字符分割...

2019-08-10 18:19:32 350

原创 从Oracle导出数据到TXT文件&从TXT文件导入数据到Oracle

如果是txt文件的数据导入oracle中,数据量大的话用pl/sql会卡死,那么就要用到sqlload命令。前两天在做一个不算任务的任务,用shell脚本将数据库中的数据导出到文件,在万能的百度上找了一些资料,自己亲手实践了一番,脚本语言又有长进。从数据库导出数据到TXT文件,完全OK,那么从TXT文本导入到数据库又怎样操作呢?于是又上万能的度娘,又亲手实践了一上午,发现网上的不少例子很好,但...

2019-08-10 17:45:26 19092 2

原创 Python 多线程的一个简单例子:一分钟遍历3千万个文件

以下程序的功能是在4个主目录下枚举的320个目录中查找符合要求的640类文件,为了加快运行效率,使用了线程。该320个目录下大约有3300多万个文件,使用下列程序,能在60秒内遍历完所有文件并查找处符合要求的文件。线程函数的入参是目录列表,线程的功能是遍历主目录下的每个子目录,列出文件名字符串,并存入数组,以供使用。程序为了方便使用了全局变量。代码如下,当做学习笔记暂记。核心功能是线程函数,正...

2019-08-06 21:21:08 4383

原创 Python编程-让繁琐的工作自动化(十)调试

程序员之间流传着一个老笑话:“编码占了编程工作量的90%,调试占了另外90%。”计算机只会做你告诉它的事情,它不会读懂你的心思,做你想要它做的事情。及时专业的程序员也一直在制造缺陷,如果你的程序有问题,不必感到沮丧,试着调试它。1.抛出异常当Python师徒执行无效的代码时,就会抛出异常。抛出异常相当于是:停止运行这个函数中的代码,如果你使用了try-except捕捉异常,那么程序将转...

2019-07-25 23:40:34 395

原创 Oracle 一种简单粗暴的办法解析XML文件的例子

在工作中,xml作为很多程序的参数配置文件被使用,在Oracle数据库中有时需要保存配置文件为clob模式。但是clob模式无法直观查看,而且在很多情况下,需要解析除xml文本中的字段值并保存到数据库便于查询,因此需要用到解析xml文件。以下是一个例子,xml配置文件保存在表1的content字段,保存为clob文本模式,以下SQL的作用是解析出每个字段的值。以下是xml文件的第一个模式内...

2019-07-25 13:21:33 2190

原创 linux 系统lsof 查找文件系统占用情况的脚本

简介lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应...

2019-07-25 13:08:04 422

原创 Python编程-让繁琐的工作自动化(九)组织文件

目录1.shutil模块1.1 shutil.copy(source,destination)1.2 shutil.copytree(source, destination)1.3 文件的移动和改名1.4 永久删除文件和文件夹1.5 使用 send2trash 模块安全地删除2. 遍历目录树3. 用zipfile模块压缩文件3.1 读取ZIP文件3.2 从z...

2019-07-25 00:09:13 255

原创 Python编程-让繁琐的工作自动化(八) 读写文件(导入自定义模块)

目录1.文件与文件路径2.当前工作目录3.绝对路径与相对路径4.用os.makedirs()创建新文件夹5.os.path 模块:6.处理绝对路径和相对路径7. 查看文件列表和文件大小8. 检查路径有效性9. 文件读写过程9.1 用open()函数打开文件9.2 读取文件内容9.3 写入文件9.4.用shelve模块保存变量9.5 用ppr...

2019-07-07 18:34:15 525

原创 Python编程-让繁琐的工作自动化(七)模式匹配与正则表达式

目录前言1.用正则表达式查找文本模式1.1 创建正则表达式1.2 匹配Regex对象1.3 正则表达式匹配步骤2 用正则表达式匹配更多模式2.3.1 利用括号分组2.3.2 用 "|"匹配多个分组2.3.3 用问号实现可选匹配2.3.4 用星号(*)匹配零次或多次2.3.5 用加号“+”匹配一次或多次2.3.6 用花括号"{}"匹配特定的次数3 ...

2019-07-06 17:34:13 1052

转载 Linux系统利用脚本删除空行或者空格的方法

Linux系统利用脚本删除空行的4种方法1)用tr命令 cat 文件名 |tr -s ‘\n’2)用sed命令 cat 文件名 |sed ‘/^$/d’ 3)用awk命令 cat 文件名 |awk ‘{if($0!=””)print}’cat...

2019-06-04 17:05:49 968

原创 expect 获取日期

在做一个主机巡检任务的时候,由于目录是按日期每天都在变化的,因此远程登录巡检的过程中,需要使用到日期,在网上参考了一些,自己理解写了日期运算,暂作为笔记参考 主要函数为 clock 和 format代码如下#!/usr/bin/expectset date [ clock format [ clock seconds ] -format "%Y%m%d" ]set secon [ ...

2019-05-13 11:05:09 3542

原创 SHELL 脚本在指定目录下遍历指定文件的列表

以下脚本是在做一个稽核任务的时候写的项目代码,暂时作为参考。功能是遍历指定目录下指定文件名称的文件是否存在于该目录,并列出文件列表和大小。仅供参考,其中用到数组,for, if else ,case 等各种控制语句,做一个综合应用shell脚本的实例,初学的脚本,比较抠脚,哈哈。ListFile.sh#!/bin/bashFILEDIR=/jzcj1/Ndata/VOLTE/VL...

2019-04-26 15:42:40 3634

原创 SHELL 脚本FTP批量上传或下载文件

特别注意的坑ftp视图下,cd 与lcd目录切换都应该使用相对路径,如果不确定是否能切换目录,最好登录手动试试FTP 登录服务器批量上传文件到指定目录:注意,以下的目录都是环境变量,自定义。#!/bin/sh#lcd 应该使用相对路径#从本地向FTP批量上传文档echo "--------------------------------------上传 ${YESTERDA...

2019-04-26 15:26:35 3151

原创 SHELL 脚本检测FTP连接

在主机运维的过程中,我们可能需要监控或检测FTP是否可达,与ping类似,FTP直接跟IP地址或主机名,可检测FTP是否可以连接。我们可以加上用户名和密码,但此处,并不登录FTP服务器,只是进行尝试连接,并检测是否超时。以下是检测常规端口21 FTP连接的脚本:#!/bin/bash#d定义数组,保存IPIP_A=(10.254.96.3810.254.96.40#1.1.1.1...

2019-04-26 15:14:30 4407 1

原创 SHELL脚本自动登录远程主机执行脚本或命令

1.Expect语言实现自动化交互简介:摘自百度Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件(Expect [is a] software suite for automating interactiv...

2019-04-26 14:56:46 22077 2

原创 Python编程-让繁琐的工作自动化(四)列表,字符串和元组

目录1.列表数据类型2.使用列表3 增强的赋值操作4方法5 类似列表的类型::字符串和元祖6.引用7.项目实践1.列表数据类型<1>列表是一个值,可以保存在变量中,或传递给函数。<2>列表格式是左方括号开始,右方括号结束。<3>列表中的值也可称为表项,表项用逗号分隔。例如:t_list = ['...

2019-04-15 23:36:24 196

原创 SHELL编程学习笔记

Linux基础是结合shell编程能做很多重要的事情,以下只对shell编程的基础进行总结。Linux基础请参考:LINUX入门教程目录1.给shell脚本传递位置参数 $n2.给函数传递位置参数 ${n}3.特殊变量3.1 $*与[email protected] $?获取函数返回值4.字符串4.1 字符串拼接,直接放在一起,不要空格4.2字符串截取从指定字符(子字符串)开始截取...

2019-04-14 17:15:31 355

原创 Crontab 每隔整点1小时2小时执行一次任务

下面是crontab的格式:分 时 日 月 星期 要运行的命令第1列分钟1~59第2列小时1~23(0表示子夜)第3列日1~31第4列月1~12第5列星期0~6(0表示星期天)第6列要运行的命令文件中是通过 5 个“*”来确定命令或任务的执行时间的,这 5 个“*”的具体含义如表 2 所示。表 2crontab 时间表示 项目 含义 ...

2019-03-28 14:53:10 40329 2

原创 Python编程-让繁琐的工作自动化(六)字符串操作

前言本章内容将学习字符串的提取,格式化字符串,大小写转换,访问剪贴板,复制粘贴文本等字符串操作。1.转义字符转义字符 打印为 \' 单引号 \" 双引号 \t 制表符 \n 换行符 \\ 倒斜杠 要在python中输出单引号或者换行符等特殊字符作为字符内容,就要用到转义字符"\",格式是"\char",反斜杠加想添加到字符串中...

2019-03-23 18:14:52 208

原创 Python编程-让繁琐的工作自动化(五)字典和结构化数据【井字棋】

字典是python中唯一的映射类型,采用键值对(key-value)的形式储存数据,python对key进行哈希函数运算,所以key值必须是可哈希的,可哈希表key必须是不可变的,如:数字、字符串、元组,元组的值value可以为所有类型的数据。系统根据哈西的计算结果储存value的地址,所以字典是无序的。相对于列表,字典是通过键来存取,二列表是通过偏移(下标)来存取。以下的表格列举函数来自:...

2019-03-17 19:26:36 394

转载 C++中实现数据共享的5种方式

转载自:https://blog.csdn.net/fanyun_01/article/details/78145431C++中实现数据共享的5种方式:1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用局部变量和全局变量共享数据&nbsp; &nbsp; &nbsp; &nbsp; 使用局部变量能够在调用和被调用函数之问通过参数传递实现不同函数块之问的数据...

2019-02-26 10:27:49 3527

Qt坐标系转换(绘制逻辑坐标系)

本资源为Qt绘图基础,世界坐标系转换为逻辑坐标系。世界坐标系原点在视图左上角,本例子通过世界坐标转换,将坐标原点定位在视图中央,Y轴向上,X轴向右,并绘制坐标轴,基于逻辑坐标系下的绘图,可将转换关系函数取消生效,对比世界坐标系下的绘图。 重写PainterEvent函数: void QtPixPainter::paintEvent(QPaintEvent* event) { QPainter painter(this); // 反走样 painter.setRenderHint(QPainter::Antialiasing, true); //物理坐标系与逻辑坐标系的转换,如果不转换,下面的绘图都是在世界坐标系下 setWorldTransform(painter); // 其他一些绘制矩形,多边形的例子,经过上面转换,都是在逻辑坐标系下 drawRectScale(painter); //draw_shearRect(painter); //利用rotate()函数进行比例变换,实现缩放效果 //draw_rotate_act(painter); //draw_by_save_restore(painter); //transform_draw_SinX(painter); transform_draw(painter); local_drawConvexPolygon(painter); } // 将世界坐标(原点左上角)转换为逻辑坐标(原点在屏幕中间) QPointF QtPixPainter::mapToScene(const QPointF& point) { QTransform transMatrix = _transform.inverted(); //翻转矩阵? return transMatrix.map(point); //将点piont映射到transMatrix定义的坐标系中来 } // 将鼠标的逻辑位置返回并以标签形式展示 void QtPixPainter::mouseMoveEvent(QMouseEvent* event) { QString msg; QPointF mouse_po = mapToScene(event->pos()); //总是返回屏幕物理坐标系 double x = mouse_po.x(); // 总是返回屏幕物理坐标系 double y = mouse_po.y(); QString str = "(" + QString::number(x) + "," + QString::number(y) + ")"; //qDebug()<<"world x = "<pos().x()<<",world y = "<pos().y(); m_mouse_lable->setText(str); }

2021-05-26

Python实现可配置的sftp传输

该资源为python实现可配置的sftp传输,get和put 配置文件为.ini文件;put和get区分一下源和目的路径,基本配置项即说明如下: [ftp]:ftp基本信息 [common] 公共的配置 如日志信息,传输模式,是否递归,是否删除等 [src_path] 源路径信息,如果是get,此项为远端目录,如果是put,为本地目录 [src_rule] 原始文件名规则,为python正则表达式 如果要按文件名规则获取,此项需要配置 [dest_rule]目标文件名规则,一般可以不配置,不配置值应为NULL [wrok_space] 本地临时工作目录,get的时候此目录为目标目录,此目录的目的是为了后续方便继续传输和分发到其他路径或主机 [dest_path] 如果未get,此路径为二次分发配置,如果是put,此目录为远端目录 [bak_path] 备份路径 二次分发程序使用 参考配置及代码即可完成配置使用 (ZIP压缩包无需密码)

2020-05-20

C实现单聊与群聊(网络编程)

C语言编写的简单聊天工具,单聊,群聊。 多线程,信号,网络编程等。

2018-08-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除