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.如果文件的大小...
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.(这个和正常...
不要在构造函数和析构函数中调用虚函数 提到构造函数和析构函数,想必大家肯定是非常了解,但是能否在构造函数或是析构函数中调用虚函数呢?答案是千万不要这么做,这么做不会得到大家想要的结果。首先提一下构造函数,构造函数的顺序是从基类开始构造->子类,如果在基类中调用虚函数,由于构造函数基类中仅存在自身(或其父类,如果存在),不会根据虚函数表的规则去调用。看如下例子class Base {public: Base(
在Makefile中使用shell命令的注意事项 Makefile文件的处理格式目标: 依赖项(可以是多个,可以写成多行,但是要以\作为续航符)[tab符]执行命令执行的Shell命令在用到变量引用的时候需要对"$"符号进行转义,需要写两个"$$"符号来转义成"$"符号例如如下for循环的例子中,就连awk中的变量引用也需要使用两个"$"符号来进行转义#自动循环c文件生成目标CC = gccSRCS =
Lex & Yacc Lex和Yacc学习过程中遇到的几个问题1.在Lex中表述空格,空格的表述得使用[ ] 或者 " " ,不可以直接写空格,否则是匹配不了的。2.在同时使用Lex和Yacc的时候,如果我们不想编写main函数或者相关的配套函数, 例如Lex的yywrap,Yacc的yyerror等,我们可以直接使用Lex或者Yacc提供的链接库 -ll 和-ly ,但是特别要注意的是,此处特
Qmake Qmake的用法 1.变量的使用 Qmake提供了很多的内置变量,主要包含了项目构建相关的变量以及Qt自身相关变量,详细可以参见qmake Variable Reference,Qt也提供供了一些内置工具变量,这些变量可以在qmake生成的Makefile中看到,例如拷贝和 删除命令 QMAKE_COPY QMAKE_DEL等。 Qmake也提供了一些Qt自身环境的变量,这些变量可以通过qm
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
Java的枚举类型 /*! * Java中的枚举类型也是类, * Java中的类都隐含从Object * 派生,Java中的枚举类型都 * 隐含从Enum类派生 * Java的枚举类型一般都是全部大写 * * SMALL,MEDIUM,LARGE.. * 都可以看成是其中一个枚举类型的 * 实例 * * Java Class反射类型,得到类型对象Class * 1..c
jsp生命周期以及基本用法 pageEncoding="utf-8" %> <%!中可以定义方法、静态方法和静态属性以及 属性等,但是<%中不可以,而且%中的out指的 并不是System.out而是PrintWriter写到页面的out 实例对象--> JSP 实例的生命周期 pri
JavaCore复习 /*! * 继承 * Java和C++继承的区别在于 * 1.Java继承的关键字是extends,C++是: * 2.Java继承只能是公有继承,java没有private,protected继承 * 3.Java继承只能是单继承,多继承采用的方法类似接口实现 */import static java.lang.System.*;/*! * 上课
计算机系统结构-延迟转移 #include #include #include #include /*! *延迟转移:CPU在执行条件判断的时候为了保证管线的流水,会 * 对指定进行预判执行,如果判断成功则流程继续,否则判断失败 * 会从条件判断正确的地方加载代码到流水管线中执行 * (从数据可见,有时候我们在for循环中使用判断逻辑的时候,如果 * 能增加判断概率是可以提高性能的,
QEvent的使用注意事项 QEvent主要的借口包含事件类型,事件的来源(可能来源于窗口系统,或者QCoreAplication的sendEvent或postEvent),type() 事件类型spontaneous() 事件的来源accept() 该对象接受处理该事件,ignore() 改对象不接受该事件,会传递给该事件的父类对象来进行处理。QWidget中对于鼠标事件的处理,默认是不接受,所以会出现传递
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
linux下svn环境的搭建 1.下载svn,ubuntu下直接 apt-get install subversion2.创建svn的仓库,新建一个目录例如/home/user/svn_repository,3.在该目录下执行svnadmin create svnwork, 创建一个svn的版本仓库,创建完成之后,svnwork会被创建,svnwork下的目录结构如下 svnwork |
QMake的高级用法 使用QMake构建多个定制目标,如下是我写的测试程序,环境Linux (ubuntu) gcc5.4 1 #使用qmake来生成多个目标,也可以将目标直接集成到现有的make对象中 2 #(在生成直接对象的时候,生成其他目标对象) 3 4 TEMPLATE = app 5 CONFIG -= qt app_bundle 6 CONFIG += c++11
解决ubuntu安装库总是不兼容的问题 因为不小心 apt-get install -f ,导致ubutnu的大量库和组件直接被删除掉,但是发现我安装的ubuntu 16总是安装不了一些库,例如libgl1-mesa-dev libglu1-mesa-dev等等,各种找原因,发现原来是需要更新Ubuntu的源,然后更新apt-get,我现在的源配置如下:# deb-src http://security.ubuntu.com/u
木桶排序-扑克牌 #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*
数据结构-Sort Sort好好复习了一下,不容易啊...#include #include #include #include #include #include #include #include #include #include #include #include #include /*made by davidsu33 2017-6-14*/#define MAX
xpath中匹配text()中是否含有制定内容的方法 如下图是我需要获取下载地址的链接,使用scrapy的response来截取的代码如下:r = response.xpath('//a[contains(text(), ".mkv")]/@href').extract()
二叉树的创建和递归遍历 /*! 二叉树的学习以及使用 1.使用字符串构造二叉树 2.二叉树的遍历 made by davidsu33*/#include #include #include #include #include #include using namespace std;struct BNode{ int m_data {-1}