- 博客(525)
- 资源 (13)
- 收藏
- 关注
原创 CCTexture2D CCSpriteBatchNode CCTextureCache CCSpriteFrameCache 分析
CCTexture2D 是对OpenGL中二位纹理的类包封,可以通过图片和内存数据来生成对应的二维纹理,实际的纹理图片可能会比生成的纹理图片要小,生成的纹理图片的大小为不小于其大小的2的N次方。还需要注意的是生成的纹理内容与纹理图片是倒着的。所以在纹理对应坐标的时候咱们需要将Y轴倒过来,否则纹理图片的对应会出错。CCSpriteBatchNode是对CCSprite节点的批处理,可以对
2013-08-12 21:31:44 1404
转载 linux下fread/read和fwrite/write
1,fread是带缓冲的,read不带缓冲.2,fopen是标准c里定义的,open是POSIX中定义的.3,fread可以读一个结构.read在linux/unix中读二进制与普通文件没有区别.4,fopen不能指定要创建文件的权限.open可以指定权限.5,fopen返回指针,open返回文件描述符(整数).6,linux/unix中任何设备都是文件,都可以用open,read.如果文件的大小...
2018-03-09 14:57:49 1527 1
转载 apt-get install失败后强制跳过的方法,修改/var/lib/dpkg/info下的安装前后shell脚本
使用apt-get出现问题,错误信息大概如下The package <package-name> needs to be reinstalled, but I can't find an archive for it.用 apt-get install -f 无法修复.考虑一下报错信息,应该是apt对之前失败的某次安装A念念不忘,并且在安装其他东西之前会重新安装这个程序A.(这个和正常...
2018-02-24 11:18:33 6209
原创 不要在构造函数和析构函数中调用虚函数
提到构造函数和析构函数,想必大家肯定是非常了解,但是能否在构造函数或是析构函数中调用虚函数呢?答案是千万不要这么做,这么做不会得到大家想要的结果。首先提一下构造函数,构造函数的顺序是从基类开始构造->子类,如果在基类中调用虚函数,由于构造函数基类中仅存在自身(或其父类,如果存在),不会根据虚函数表的规则去调用。看如下例子class Base {public: Base(
2018-01-12 11:28:32 1791
原创 在Makefile中使用shell命令的注意事项
Makefile文件的处理格式目标: 依赖项(可以是多个,可以写成多行,但是要以\作为续航符)[tab符]执行命令执行的Shell命令在用到变量引用的时候需要对"$"符号进行转义,需要写两个"$$"符号来转义成"$"符号例如如下for循环的例子中,就连awk中的变量引用也需要使用两个"$"符号来进行转义#自动循环c文件生成目标CC = gccSRCS =
2017-11-24 14:43:54 1756
原创 Lex & Yacc
Lex和Yacc学习过程中遇到的几个问题1.在Lex中表述空格,空格的表述得使用[ ] 或者 " " ,不可以直接写空格,否则是匹配不了的。2.在同时使用Lex和Yacc的时候,如果我们不想编写main函数或者相关的配套函数, 例如Lex的yywrap,Yacc的yyerror等,我们可以直接使用Lex或者Yacc提供的链接库 -ll 和-ly ,但是特别要注意的是,此处特
2017-11-20 14:59:39 605
原创 Qmake
Qmake的用法 1.变量的使用 Qmake提供了很多的内置变量,主要包含了项目构建相关的变量以及Qt自身相关变量,详细可以参见qmake Variable Reference,Qt也提供供了一些内置工具变量,这些变量可以在qmake生成的Makefile中看到,例如拷贝和 删除命令 QMAKE_COPY QMAKE_DEL等。 Qmake也提供了一些Qt自身环境的变量,这些变量可以通过qm
2017-08-29 15:10:16 1023
原创 Qmake recursion
Qmake递归Qmake的对象可支持任意深度,Qmake的函数调用可以支持递归(不能超过深度100次调用)超过一百次认为是死循环会报错a.lib = alib_1 alib_2 SINGLE_MODULE = b c d e f g h i j for(i, SINGLE_MODULE){ #变量符合一个”.”的字符串,请使用$$quote eval($${i}$$quote(.lib
2017-08-29 15:08:32 460
原创 Java的枚举类型
/*! * Java中的枚举类型也是类, * Java中的类都隐含从Object * 派生,Java中的枚举类型都 * 隐含从Enum类派生 * Java的枚举类型一般都是全部大写 * * SMALL,MEDIUM,LARGE.. * 都可以看成是其中一个枚举类型的 * 实例 * * Java Class反射类型,得到类型对象Class * 1..c
2017-08-28 14:48:32 380
原创 jsp生命周期以及基本用法
pageEncoding="utf-8" %> <%!中可以定义方法、静态方法和静态属性以及 属性等,但是<%中不可以,而且%中的out指的 并不是System.out而是PrintWriter写到页面的out 实例对象--> JSP 实例的生命周期 pri
2017-08-28 09:21:02 442
原创 JavaCore复习
/*! * 继承 * Java和C++继承的区别在于 * 1.Java继承的关键字是extends,C++是: * 2.Java继承只能是公有继承,java没有private,protected继承 * 3.Java继承只能是单继承,多继承采用的方法类似接口实现 */import static java.lang.System.*;/*! * 上课
2017-08-24 17:31:18 393
原创 计算机系统结构-延迟转移
#include #include #include #include /*! *延迟转移:CPU在执行条件判断的时候为了保证管线的流水,会 * 对指定进行预判执行,如果判断成功则流程继续,否则判断失败 * 会从条件判断正确的地方加载代码到流水管线中执行 * (从数据可见,有时候我们在for循环中使用判断逻辑的时候,如果 * 能增加判断概率是可以提高性能的,
2017-07-13 09:17:10 2654
原创 QEvent的使用注意事项
QEvent主要的借口包含事件类型,事件的来源(可能来源于窗口系统,或者QCoreAplication的sendEvent或postEvent),type() 事件类型spontaneous() 事件的来源accept() 该对象接受处理该事件,ignore() 改对象不接受该事件,会传递给该事件的父类对象来进行处理。QWidget中对于鼠标事件的处理,默认是不接受,所以会出现传递
2017-07-12 13:14:43 853
转载 linux中动态库的编译和加载的查找顺序
Glibc安装的库中有一个名为ld-Linux.so.X其中X为一个数字(版本),在不同的平台上可以通过ldd查看$ldd /bin/catlinux-vdso.so.1 => (0x00007fff9176f000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f16424d4000)/lib64/ld-linux
2017-07-11 16:40:32 2515
原创 linux下svn环境的搭建
1.下载svn,ubuntu下直接 apt-get install subversion2.创建svn的仓库,新建一个目录例如/home/user/svn_repository,3.在该目录下执行svnadmin create svnwork, 创建一个svn的版本仓库,创建完成之后,svnwork会被创建,svnwork下的目录结构如下 svnwork |
2017-07-04 09:10:57 947
原创 QMake的高级用法
使用QMake构建多个定制目标,如下是我写的测试程序,环境Linux (ubuntu) gcc5.4 1 #使用qmake来生成多个目标,也可以将目标直接集成到现有的make对象中 2 #(在生成直接对象的时候,生成其他目标对象) 3 4 TEMPLATE = app 5 CONFIG -= qt app_bundle 6 CONFIG += c++11
2017-06-29 10:30:03 1781
原创 解决ubuntu安装库总是不兼容的问题
因为不小心 apt-get install -f ,导致ubutnu的大量库和组件直接被删除掉,但是发现我安装的ubuntu 16总是安装不了一些库,例如libgl1-mesa-dev libglu1-mesa-dev等等,各种找原因,发现原来是需要更新Ubuntu的源,然后更新apt-get,我现在的源配置如下:# deb-src http://security.ubuntu.com/u
2017-06-28 15:56:56 1359
原创 木桶排序-扑克牌
#include #include #include #include #include #include using namespace std;templatestruct LinkNode{ LinkNode() = default; LinkNode(const T& t):m_data(t){} T m_data{0}; LinkNode*
2017-06-15 14:53:56 457
原创 数据结构-Sort
Sort好好复习了一下,不容易啊...#include #include #include #include #include #include #include #include #include #include #include #include #include /*made by davidsu33 2017-6-14*/#define MAX
2017-06-14 20:11:42 566
原创 xpath中匹配text()中是否含有制定内容的方法
如下图是我需要获取下载地址的链接,使用scrapy的response来截取的代码如下:r = response.xpath('//a[contains(text(), ".mkv")]/@href').extract()
2017-06-11 16:32:27 4159
原创 二叉树的创建和递归遍历
/*! 二叉树的学习以及使用 1.使用字符串构造二叉树 2.二叉树的遍历 made by davidsu33*/#include #include #include #include #include #include using namespace std;struct BNode{ int m_data {-1}
2017-06-01 11:22:46 677
转载 Linux下解决qtcreator中不能输入中文的问题
在Ubuntu环境下用了两天Qt,今天突然发现在Qt 5的代码编辑器里面居然无法输入中文!生成的输入框也同样无法输入中文!在其他软件里面把中文复制过去,调试也没发现有任何显示问题,搜索了一下,原来是输入法框架的问题。再看一下解决办法,各种各样:装软件、复制中文支持文件、写脚本、改系统配置,甚至还有重新编译一个程序来实现的,真是八仙过海,各显牛逼。软件出现漏洞很正常,但是这么有名的产品,我是
2017-05-24 11:15:44 19839 8
原创 使用httpie下载图片
要知道有的时候,直接下载是不行的,需要定制http头信息才可以,所以这里,使用httpie的shell脚本来下载文件#!/bin/bash#采用httpie来下载图片,因为需要处理referer头#made by davidsu33#2017-5-17DOWNLOAD_DIR=~/images/lynGALLERY_LYN=18071INDEX_LYN=2267
2017-05-17 16:10:58 675
原创 windows系统下安装linux双系统(问题解决)
这几天重新安装系统,在安装过程中出现了各种问题,在则里逐一进行记录并说明1.双系统的安装顺序,必须先安装windows,然后在安装linux。2.windows的磁盘分区不能是动态分区,必须是基本分区,否在在linux安装的时候是看不到独立的分区的。(被我碰到了)3.windows的主分区不要超过三个,因为最多目前只能识别4个主分区。(除了windows的c盘之外就不要再分配主分区了)
2017-05-17 13:06:19 905
转载 ubuntu下搜狗输入法的输入框只显示英文不显示中文的问题
我把原来的sogou拼音卸载之后就全部出问题了,系统设置的文本输入也显示不了解决方案: 首先强制更新,把依赖文件全部安装sudo apt-get install -f这之后仍然是不管用,于是,继续度娘,发现原来是搜狗默认的配置出了问题,见如下操作即可完成问题(1)Ubuntu下,搜狗拼音输入法能启动(系统托盘处有图标),但是打不出汉字,打字时选框不正常。
2017-03-16 11:38:45 7709 1
原创 使用bash编写图片爬虫
#!/bin/bashLINKFORMAT="http://img1.mm131.com/pic/%d/%d.jpg"MAX_COUONT=100#download mm gallery,to stop if can't downloadfunction download_gallery(){ if [ ! -d "$1" ];then #if
2017-03-14 09:12:53 1245
转载 linux shellIO重定向
、基本概念 a、I/O重定向通常与 FD有关,shell的FD通常为10个,即 0~9; b、常用FD有3个,为0(stdin,标准输入)、1(stdout,标准输出)、2(stderr,标准错误输出),默认与keyboard、monitor、monitor有关; c、用 d、用 > 来改变送出的数据信道(stdout, stderr),使之输出到指定的档案; e、
2017-03-02 14:02:10 386
转载 bash下. : () {} [] [[]] (())的解释
bash下有很多像{}、[]等一些符号命令,下面是我对一些常用的符号命令的学习笔记,若有错误或纰漏望各位兄弟指正。一、.(source).(点)与source命令一样,从文件中读取并执行命令,无论该文件是否都有可执行权限都能够正确的执行。且是在当前shell下执行,而不是产生一个子shell来执行(我们通常使用“./filename.sh”去执行一个文件是在当前shell下产生一个子s
2017-02-27 14:34:35 336
原创 bash中if条件语句的使用及bash返回值的注意事项
#!/bin/bash#bash函数以及返回值的注意事项function showgrade(){ if [ ! -z "$1" ];then echo "Your grade is $1" else echo "Invalid call $FUNCNAME" fi}#学生成绩分类echo "Pl
2017-02-27 09:49:39 2298
原创 bash脚本实现fabnacci函数
#!/bin/bashARGCOUNT=1if [ ! $# -eq $ARGCOUNT ];then echo "请输入Fibnacci的项数,并自动求和.用法$0 N"fifunction fib(){ one=1 two=1 #bash的循环支持continue语句和break语句 for i in `
2017-02-24 11:26:10 381
原创 awk调用函数
#!/usr/bin/awk -f#例子程序,针对用户名,从/et/passwd中来自动进行查找,并输出相关的信息#awk甚至可以直接定义全局变量g_counter=0;function finduser(name){ posname=5; posdir=7; split($0, s, ":"); for(i in s){
2017-02-22 11:13:38 2159
转载 epoll学习:思考一种高性能的服务器处理框架
终于开始学习epoll了,虽然不明白的地方还是很多,但从理论到实践,相信自己动手去写一个具体的框架后,一切会清晰很多。1、首先需要一个内存池,目的在于:·减少频繁的分配和释放,提高性能的同时,还能避免内存碎片的问题;·能够存储变长的数据,不要很傻瓜地只能预分配一个最大长度;·基于SLAB算法实现内存池是一个好的思路:分配不同大小的多个块,请求时返回大于请求长度的最小块即可,对于
2017-02-08 10:16:16 1508
原创 linux下clock计时为0的问题?
使用linux的select函数作为定时器,发现调用clock进行计时,每次得到的结果都是0,原因是因为clock的函数定义是指从程序启动到cpu所占用的时间,这个很重要,如果调用的函数并未占用cpu的时间,这个是不计时的,包括调用sleep之类的,也是不会计入cpu的耗时的,所以在select的循环中直接调用clock是没有意义的,如果需要计量时间,只能是调用time了。
2017-02-03 15:41:56 2913
原创 CentOS安装字体
1.将字体文件(*.ttf)文件拷贝至 /usr/share/fonts/ 目录下2.将当前终端用户切换为超级用户3.在终端下切换至字体文件的所在目录位置4.执行如下命令 mkfontscale mkfontdir fc-cache -fv
2017-01-22 16:08:15 597
转载 Linux中SIGPIPE信号说明
当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。我写了一个服务器程序,在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试. 但是服务器总是莫名退出,没有core文件.最后问题确
2017-01-22 15:53:24 1907
原创 ctags的使用
Ctags递归生成C++标签的命令ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++CTags递归生成C标签的命令(Linux /usr/include)ctags -R --sort=yes --c-kinds=+l+x+p --fields=+ls -I __T
2017-01-20 11:11:44 639
原创 makefile和bash结合编译-执行(入门)
有一个test.c的源文件,需要编译和运行,可以使用如下的Makefile和脚本来进行操作//test.c#include int main(int argc, char *argv[]){ printf("test ....\n"); return 0;}#Makefile#Makefile脚本#Makefile脚本的规范,依赖关系,执行命令
2017-01-19 17:04:03 2192
转载 Linux网络编程常用文件
=====常用Linux网络编程头文件====sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构 netinet/in.h:定义数据结构sockaddr_in arpa/inet.h:提供IP地址转换函数 netdb.h:提供设置及获取域名的函数 sys/ioctl.h:提供对I/O控制的函数 sys/
2017-01-19 15:42:57 267
转载 Bash脚本中进制转换
修改脚本时,想直接用10进制转换为16进制的方法,在网上搜了搜,结果是找到了,可惜所用系统中没有对应的指令,还是用不成,最后就用了一个比较笨一点的方法。既然有需要,就把搜到感觉有用的进制转换函数或指令都贴在这里,便于以后应用。shell可以在不调用第3方命令,表示不同进制数据。这里总结以下表示方法。shell 脚本默认数值是由10 进制数处理,除非这个数字某种特殊的标记法或前缀开头
2017-01-18 15:15:24 3507 1
转载 IP数据包中报头长度的计算
IP数据包格式版本Version:4位,表示IP地址的版本 1111=32bits首部长度Header Length:4位,表示IP数据报头的长度,最小20字节,最大69字节。那么这个bit是怎么表示的呢。0001 = 1X4=4字节 0101 = 5 5X4=20字节 1111 = 15 15X4=60字节
2017-01-18 11:25:52 8785
android自动短信发送源码
2013-04-26
独立的键盘钩子,用来hook键盘的一个小程序,很值得看看
2009-12-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人