
编程心得
文章平均质量分 59
清钟沁桐
for study
展开
-
C++语法学习笔记之四 -- 字符串string相关
1、C++ 17新引入std::string_view使用介绍,std::string_view是原始字符串的视图,如果在查看std::string_view的同时修改了字符串,或者字符串被消毁,那么将是未定义的行为。std::string_view比std::string的性能要高很多,因为每个std::string都独自拥有一份字符串的拷贝,而std::string_view只是记录了自己对应的字符串的指针和偏移位置。当我们在只是查看字符串的函数中可以直接使用std::string_view来代替原创 2022-01-27 20:34:23 · 2928 阅读 · 0 评论 -
LLVM 编译器学习笔记之二十九 -- 控制流程CFG
1、查看控制流图的方法a) 对于中间表达的 *.ll 文件opt -dot-cfg before-indvars.lldot -Tpng .p.dot -o tmp.pngb) 在调试过程中,可以使用F.viewCFG()接口先获取相应的*.dot文件,之后雷同 参考:自动向量化调试过程查看CFG流图_CanaanLeeN的博客-优快云博客...原创 2021-09-15 11:36:26 · 1393 阅读 · 0 评论 -
用户代码修改相关的性能优化方法 -- 二维指针和二维数组的访问效率
示例代码:二维数组或者一维结构体指针访存效率高于二维指针#define N 10int aa[N][3] = {0,1,2,3,4,5,5,6,67};int bb[3*N] = {0,1,2,3,4,5,5,6,67};int init (int ** &matrix, int * const &array, int n) { matrix = (int **)malloc (sizeof (int *) * N); for (int i=0; i&原创 2021-08-12 19:42:48 · 252 阅读 · 0 评论 -
leetcode 编程技巧之二
1、参考523. 连续的子数组和中,C语言中也可以原创 2021-06-03 11:42:00 · 341 阅读 · 0 评论 -
二部图(二分图)总结,一个图意味着从任何一个顶点开始能访问到所有的结点
描述二 部图又叫二分图,我们不是求它的二分图最大匹配,也不是完美匹配,也不是多重匹配,而是证明一个图是不是二部图。证明二部图可以用着色来解决,即我们可以 用两种颜色去涂一个图,使的任意相连的两个顶点颜色不相同,切任意两个结点之间最多一条边。为了简化问题,我们每次都从0节点开始涂色输入输入:多组数据第一行一个整数 n(n<=200) 表示 n个节点第二行一个整数m 表示 条边随后 m行 两个整数 u , v 表示 一条边输出如果是二部图输出 BICOLORABLE.否则输出原创 2020-11-01 21:45:53 · 1747 阅读 · 0 评论 -
ffi 库使用demo--之二
相比https://mp.youkuaiyun.com/editor/html/112862401,这里模拟调用了llvm 中offload模块中__tgt_rtl_run_target_region接口(其中封装了ffi_call调用)1、文件/tmp/tmpfile_wxuHGp为设备侧offload代码片段对应的动态库,在offload流程中通过#include <cassert>#include <cstring>#include <stdio.h>#incl原创 2021-01-20 22:02:12 · 766 阅读 · 0 评论 -
ffi 库使用demo
FFI(Foreign Function Interface)允许以一种语言编写的代码调用另一种语言的代码,而libffi库提供了最底层的、与架构相关的、完整的FFI。libffi的作用就相当于编译器,它为多种调用规则提供了一系列高级语言编程接口,然后通过相应接口完成函数调用,底层会根据对应的规则,完成数据准备,生成相应的汇编指令代码。动态调用C函数,使用libffi提供接口动态调用流程如下:1. 准备好参数数据及其对应ffi_type数组、返回值内存指针、函数指针2. 创建与函数特征相匹配的函数原原创 2021-01-20 12:55:04 · 1996 阅读 · 0 评论 -
模拟dos中的xcopy功能,实现文件的复制,当子文件夹不存在时自动创建
#!/bin/sh# 模拟dos中的xcopy功能,实现文件的复制,当子文件夹不存在时自动创建movefile(){ local file=$1 local destDir=$2 echo file=$file echo destDir=$destDir # local len=`expr length $projectAb原创 2011-12-15 14:33:50 · 9031 阅读 · 0 评论 -
bat 脚本完成文件重命名及配置文件读取,字符串截取功能
::update the configure filecd /d D:\CI_version\configure"C:\Program Files\SlikSvn\bin\"svn.exe up:: read the configure file context@echo offfor /f "tokens=1,2 delims==" %%i in (app.config) do (原创 2015-03-19 16:27:54 · 4226 阅读 · 1 评论 -
gcc 已知的问题及规避方案 https://gcc.gnu.org/bugs/#known
https://gcc.gnu.org/bugs/#knownGCC BugsTable of ContentsReporting BugsWhat we needWhat we DON'T wantWhere to post itDetailed bug reporting instructionsDetailed bug reporting instructions for GNATD转载 2015-07-04 17:36:31 · 5145 阅读 · 0 评论 -
rust 学习入门
Rust is a systems programming language that runs blazingly fast, prevents nearly all segfaults, and guarantees thread safety. Show me!Recommended Version:1.1.0 (Windows installer)InstallOthe原创 2015-08-01 13:08:18 · 1503 阅读 · 2 评论 -
二进制一致性确认分析
def CheckCC1(): global g_sourcc1 global g_destcc1 global g_sourgcc global g_destgcc global g_sourcc1plus global g_destcc1plus global g_sourcpp global g_destcpp if ((g_sourcc1 != None转载 2015-12-02 13:06:37 · 8956 阅读 · 0 评论 -
linux下,shell如何删除指定字符间的内容
http://bbs.youkuaiyun.com/topics/391879580 [zhongyunde@linux-hcc3 ~/6183_hcc]$vi dd.txtddd#begin ddhere is need to be repalce content!#endddd[zhongyunde@linux-hcc3 ~/61转载 2016-06-30 18:38:06 · 11706 阅读 · 0 评论 -
从TeamViewer的运行内存中提取密码
http://www.toutiao.com/a6450771078498763021/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=13287414181&utm_medium=toutiao_android从TeamViewer的运行内存中提取密码转载 2017-08-09 06:04:26 · 10976 阅读 · 0 评论 -
华为OJ练习题 -- c 语言IO重定位
在OJ 练习时发现scanf等IO操作并不需要直接通过控制台输入输出,对调试效率极大提高通过接口 freopen 可以实现此操作#include <stdio.h>#include <stdlib.h> int main (){ freopen("in.txt","r",stdin); //从in.txt 中读入数据 freo...转载 2019-09-21 21:49:21 · 260 阅读 · 0 评论 -
对应iu的自增操作,需要mem支持相应的pattern模板
242 (define_memory_constraint "Zmu"243 ".iu for the scalar load/store instruction"244 (and (match_code "mem")245 (match_test("GET_RTX_CLASS (GET_CODE (XEXP (op,0))) == RTX_AUTOINC246原创 2014-10-16 21:52:36 · 739 阅读 · 1 评论 -
shell 脚本调用java程序 实例
for((i=201;i<=270;i++)); do s='0'; s=$s$i; echo $s; java com.netease.news.logic.MenuGen $s; done echo "done"原创 2014-10-16 23:14:41 · 2924 阅读 · 0 评论 -
opqcp:C语言混淆器
从C FAQ上看到的一个程序,可以将C语言源文件变成难以识别的代码。文件从http://www.faqs.org/ftp/usenet/comp.sources.misc/packages/opqcp/下载得到。opqcp.zip转载 2012-09-02 20:07:46 · 6171 阅读 · 3 评论 -
perl 模式匹配
第六章 模式匹配by flamephoenix一、简介二、匹配操作符三、模式中的特殊字符1、字符+2、字符 []和[^]3、字符 *和?4、转义字符5、匹配任意字母或数字6、锚模式7、模式中的变量替换8、字符范围转义前缀9、匹配任意字符10、匹配指定数目的字符11、指定选项12、模式原创 2012-08-05 10:38:24 · 842 阅读 · 0 评论 -
种子填充算法在验证码识别中的的应用
种子填充算法在验证码识别中的的应用 需要模拟精灵v7.15 下载:http://www.yhhe.net/bbs/dispbbs.asp?boardID=4&ID=2851&page=1模拟精灵识别验证码的能用是强大的,一个函数即可以去除杂色杂点,但是有时候验证码中有大量的干扰线,并且位置随机变动的太历害,这时候我们在处理验证码以前转载 2012-01-15 09:41:04 · 2455 阅读 · 0 评论 -
atexit 在函数正常退出时执行的函数注册
#include #include #include static void my_exit(void);int main(void){ if (atexit(my_exit) != 0) printf("can't register my_exit"); printf("main is done\n");转载 2011-12-26 13:23:25 · 1171 阅读 · 0 评论 -
linux(cygwin) 获取进程号
#include #include int main ( ) { printf ("The process ID is %d\n", (int) getpid ()) ; //±¾½ø³Ì printf ("The parent process ID is %d\n", (int) getppid ()) ; //¸¸½ø³Ì return 0 ; }转载 2011-12-26 13:04:11 · 1396 阅读 · 0 评论 -
在shell中利用 bc 实现小数或者整数的比较操作
echo listobjects=$listobjectsecho logfile=${logfile}dos2unix ${performanceLog} &> /dev/zero# get the performanceLog row number trac_rows=`sed -n '$=' ${performanceLog}`# echo trac_rows=$原创 2011-12-14 21:23:46 · 4674 阅读 · 2 评论 -
Linux命令行下全路径显示
默认的PS1="[\u@\h \W]\$",其中\W就是路径的设置选项,大写的W是简介模式,小写的为全路径模式,自己改改就OK了原创 2011-07-14 12:42:07 · 2809 阅读 · 1 评论 -
ln -s 在windows和cygwin下的区别
http://www.blogjava.net/zellux/archive/2007/11/25/163046.html原创 2011-03-23 13:31:00 · 3592 阅读 · 0 评论 -
DLL的静态信息
自:http://blog.youkuaiyun.com/ymzhou117/article/details/7346899如果需要调用DLL中的函数,那么DLL的imag必须映射到调用线程的进程地址空间中,我们可以通过2种方法处理。1、在源代码中引入DLL的符号。当应用程序启动运行时,loader会隐式加载链接需要的DLL(仅需要时才加载)。2、在程序运行时显示加载需要的DLL(调用转载 2013-02-18 21:03:51 · 950 阅读 · 3 评论 -
安全编码实践一:GS编译选项和缓存溢出
11期文章: http://blog.youkuaiyun.com/chengyun_chu/article/details/1942172申明。文章仅代表个人观点,与所在公司无任何联系。 1. 概述函数堆栈缓存溢出,是操作系统和应用程序安全漏洞最常见,最严重的类型之一。它往往导致可以允许攻击者可以远程执行恶意代码。例如,以下这段代码[2,p147]就展示了Window转载 2013-02-24 19:39:08 · 3628 阅读 · 1 评论 -
安全编码实践二:NXCOMPAT选项和数据执行保护DEP
《程序员》3月文章申明。文章仅代表个人观点,与所在公司无任何联系。概述 在安全编码实践一中我们谈到GS编译选项和缓存溢出。缓存溢出的直接后果就是可能导致恶意代码的远程执行。GS选项存在自身的局限,例如,有若干方法可以绕过GS选项的保护。 在这篇文章里,我们会介绍另外一个非常重要的安全特性:数据执行保护,即DEP-Data Execution Prevention,以及转载 2013-02-24 19:41:05 · 1045 阅读 · 0 评论 -
学车的常见问题
1) 新手为什么老熄火 ÀëºÏÆ÷̧¹ý¿ìÓ¦¸ÃµÈ³µ×߶¯Á˲ÅÂýÂý̧Íê·ñÔòÈÝÒ×Ϩ»ð±ð¹ÜÃæ³µºÎ°´À®°ÈÖ»¹Ü×Ô¼ºÂýÂý¿ª£¨Ô½¼±Ô½»áϨ»ð£© ¿ª10Ìì»áÉÙÁËϨ»ð´ÎÊýûÓа취ÿÀϼÝÊ»¶¼´ÓÐÂÊÖ£¨Ò²»áϨ»ð£©¹ýÀ´原创 2014-06-09 19:47:52 · 1697 阅读 · 0 评论 -
为什么printf()用%f输出double型,而scanf却用%lf呢?
《你必须知道的495个C语言问题》第12章标准输入输出库,本章的很多问题都跟printf(问题12.7到12.12)和scanf(问题12.13到12.22)有关。本小节为大家介绍有人告诉我不能在printf中使用%lf。为什么printf()用%f输出double型,而scanf却用%lf呢?转载 2014-04-14 10:35:50 · 1754 阅读 · 0 评论 -
linux 查看磁盘分区格式
linux 查看磁盘分区格式http://hi.baidu.com/erlun/item/e5345b8611cb9156e73d19de查看磁盘卷标:可以使用命令e2lable,例如: e2lable /dev/sda1查看磁盘分区格式:可以使用命令df,例如: df -T /dev/sdb1详细的用法请参考命令手册。例如:man 或者转载 2014-04-08 13:30:40 · 36782 阅读 · 0 评论 -
autoconf 和 automake 生成 Makefile 文件
http://www.ibm.com/developerworks/cn/linux/l-makefile/生成 Makefile 的来龙去脉首先进入 project 目录,在该目录下运行一系列命令,创建和修改几个文件,就可以生成符合该平台的Makefile文件,操作过程如下:1) 运行autoscan命令2) 将configure.scan 文件重命名为configure.原创 2014-03-31 19:45:09 · 721 阅读 · 1 评论 -
C 语言中基本数据类型的sizeof大小
#define SIZE_OF(TYPE) \ do { \ printf ("sizeof ("#TYPE") = %d\n", sizeof (TYPE)); \ } while (0);原创 2014-03-29 11:27:26 · 1830 阅读 · 0 评论 -
bat 脚本处理技巧
1)利用文件给bat变量赋值@echo offhostname>aaset/p a=del aaecho %a%转载 2013-12-17 12:56:32 · 821 阅读 · 0 评论 -
安全编码实践四:C/C++中禁用危险API
程序员》9月文章 申明。文章仅代表个人观点,与所在公司无任何联系。概述 在前面的安全编码实践的文章里,我们讨论了GS编译选项,数据执行保护DEP功能,以及静态代码分析工具Prefast。这里,我们讨论在C/C++代码中禁用危险的API,其主要目的是为了减少代码中引入安全漏洞的可能性。那些是危险的API2.1历史 在微软产品的安全漏洞中,有很转载 2013-02-24 19:43:04 · 2155 阅读 · 0 评论 -
安全编码实践三:C/C++静态代码分析工具Prefast
《程序员》5月文章。申明。文章仅代表个人观点,与所在公司无任何联系。 概述 在前面的安全编码实践的文章里,我们讨论了GS编译选项和数据执行保护DEP功能。结论是GS和DEP可以有效的缓解缓存溢出类型的安全漏洞的危害。关于这个结论,有两个大家需要值得注意的地方。 第一:GS和DEP是缓解(mitigation)措施。也就是说,代码本身仍然存在着安全漏洞,只是由于GS转载 2013-02-24 19:42:04 · 1314 阅读 · 0 评论