读写文件时字符串存在多个文件终止符解决方法 写文件我在Linux使用openssl库的DES算法进行文件的加解密时遇到一个问题。我从文件读取明文,然后加密为密文,最后将密文写入文件时发现文件写入的字节数量小于加密完的密文字节数,经过一番验证,发现是加密完的字符串中间包含文件终止符(-1),导致写入的时候遇到文件终止符提前结束了,所以只写入了部分内容。 错误写法: 12345std::string outText;//outText为输出的 2019-03-21 学习笔记 #c++ #文件读写 #多文件终止符
PHP扩展开发之c与c++两种模式 使用c或者c++开发php扩展的目的在于,利用c和c++的高效性提高性能,毕竟php只是一个脚本语言。php的msyqli等扩展就是一个例子,可以从其中了解php扩展的大概框架。 准备工作 下载相应的php源码 编译需要的库文件 开发扩展1.创建扩展项目进入php源码的ext目录,生成一个名为test的扩展项目 1./ext_skel --extname=test 2.编辑配置文件进入t 2019-03-19 学习笔记 #PHP扩展 #c #c++
g++编译方法以及合并静态库 g++编译源码一般g++的编译选项常用两种-c 和-o 。-c是源码编译但不链接,生成.o文件,-o是编译同时链接,生成可行性文件,如果不指定-o会生成默认的a.out可执行程序。假设以及存在一个main.cpp的源文件,示例如下: 1g++ -c main.cpp 1g++ main.cpp -o test 生成和合并静态库生成静态库是将.o文件压缩为一个.a文件,方法如下: 1ar cr 2019-03-19 学习笔记 #g++编译 #合并静态库
QThread的事件循环与生命周期 想要使用QThread一般就是继承QThread。然后重写(override)run()函数,run函数就是线程启动实际运行的部分。这里顺便说一下Qt创建的实例所处的线程问题,一个实例在哪个线程里面创建,那他就是属于哪个线程。比如一般使用QThread的时候都是在主线程里面创建的。由此引发了一个区别,在QThead的构造函数里面创建的实例属于主线程,因为这个构造函数是在主线程中执行的。在 2019-03-06 Qt学习笔记 #QThread
QtCreator在Linux下断点调试无法访问变量的值 QtCreator调试无法获取当前变量值bug状态如下: 这个原因是因为gdb没有获取到Qt的lib的路径,所以需要告诉gdb。在QtCreator的工具里面就可以设置调试器GDB,在额外的启动命令里面添加一条命令,后面的路径设置为你自己的目录即可 1set solib-search-path /usr/local/Trolltech/Qt-4.8.6-64/lib/ 如下图所示: 添加后 2019-03-05 Qt学习笔记 #Qt,GDB
Qt编码解决思路 Qt设置全局的编码格式1234QTextCodec *codec = QTextCodec::codecForName("UTF-8");QTextCodec::setCodecForTr(codec);QTextCodec::setCodecForLocale(codec);QTextCodec::setCodecForCStrings(codec); 说明:setCode 2019-03-04 Qt学习笔记 #中文编码
Ubuntu添加开机启动脚本 新建一个shell脚本,内容如下 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#!/bin/bash### BEGIN INIT INFO# Provides: protected_shell# Required-Start: $lo 2019-01-31
qtcreator无法输入中文 Linux如果使用搜狗输入法,那么QtCreator将无法输入中文,因为Qt没有自带的fcitx扩展支持,但是存在ibus的扩展支持,所以安装ibus。然后切换输入法为ibus即可。 12sudo apt-get install ibus-pinyin ibus-qt4im-config 2019-01-29 Qt学习笔记 #QtCreator 中文输入
Linux打包QT程序时提示找不到QMYSQL驱动 Linux Qt发布打包的程序到另外一个没有安装Qt环境的Linux系统,首先要将所有依赖的动态链接库全部找到,例如libQtCore.so和本次的重点libqsqlmysql.so。将上述文件全部拷贝到目标机器上以后,先要ldd libqsqlmysql.so看看是否依赖齐全,如果提示libmysqlclient.so找不到,那就安装libmysqlclient18或libmysqlclient 2019-01-28
WinScp连接Linux服务器错误:服务器拒绝了SFTP连接 检查Linux系统是否安装了sshd服务 service ssh status 如果没有安装 sudo apt-get install openssh-server sudo service ssh start 2019-01-22 #WinScp