- 博客(61)
- 收藏
- 关注
原创 Linux配置FTP服务
1)启动:systemctl start vsftpd(部分Linux系统需要添加sudo 会报错Operation not permitted此时再输入命令:sudo!FTP服务器:一种应用广泛且古老的互联网文件传输协议,主要用于文件的双向传输。1.关闭防火墙和selinux(若linux系统没有这两种功能,跳过此步骤)2)开机自启动:systemctl enable vsftpd。输入ip 用户名 及密码(端口号不输入时是默认端口号21)2)指定访问目录为:/home/test。
2024-08-03 14:44:40 327
原创 linux下创建文件夹软链接
软链接是Linux下常用的一种共享文件方式、目录的方式,这种方式类似于Windows下的快捷方式。一般一个文件或者目录在不同的路径都需要的时候,可以通过创建软链接的方式来共享,这样系统下面只有一份源文件、目录。另外,巧用软链接,可以大大增加应用程序的可移植性。一般做嵌入式Linux开发,linux的虚拟机都会安装好多平台的交叉编译器,这些编译器可能会用到一些库,库在使用的时候,需要将头文件放到编译器路径下面。注意:删除的时候,如果是目录,结尾时,不要加"/",不然会把指向的目录给删掉!
2023-10-24 16:26:17 879
原创 windows10下 iperf3测试带宽
客户端输入:"iperf3.exe -u -c 服务器IP地址 -b 5g" //客户端给服务器发送udp数据包,最大带宽为5g。客户端输入:“iperf3.exe -c 服务器IP地址 -P 10“//表示客户端10路并行给服务器发送TCP包;上图可知:带宽是15Gbps(这里不知道为什么下面测试的UDP会比这里TCP慢 按道理UDP不可能比TCP慢的5.)3. 验证是否下载成功,在打开的窗口中输入“iperf3.exe -v”,会出现安装的版本,表示安装成功了。5. iperf3参数。
2023-10-12 14:01:41 3314
原创 QT编译报错stdlib.h:No such file or directory
在Ubuntu的CSTDLIB中,使用的是#include_next下“stdlib.h” ,自行增加/usr/include 把include_next的顺序打乱,造成编译错误。但是在centos下需要包含 不然编译过不去。如图,需要将第19行,INCLUDEPATH += /usr/include 注释掉。
2023-09-28 15:07:42 902
原创 QT--Opencv下报错Mat/imwrite/imread找不到文件
像file not found这类错误 原因是编程系统找不到所指库文件,以此为例,排查自己的每个位置是否有误。这样子才可以使用opencv中的库函数。或者是使用库函数的时候加上作用域。添加opencv动态库。头文件中可添加作用域。
2023-09-28 14:22:34 1095
原创 图像相关知识(分辨率、帧率、数据格式、数据量以及像素时钟)
dotclock=(x向分辨率+左空边+右空边+HSYNC长度)* (y向分辨率+上空边+下空边+YSYNC长度)*整屏的刷新率。YUV444: 8+8+8 = 24bit 可用NV24/NV42表示(24表示UV 42相反表示VU)YUV420/YUV411:8+4+0 = 8+2+2 = 12bit 可用NV12/NV21表示。常用分辨率对应常用帧率:25/30/60 50/60 25/30/50 25/50/60。上空边+下空边+YSYNC长度 = 36+5+4 = 45;
2023-09-12 13:42:33 3109 2
原创 QT生成可执行文件
1.在计算机任意英文路径下新建一个文件夹。本文在F:\QTproject\hisiupdate下创建了test文件夹。将QT工程运行Release生成的build-update-MinGW-Release文件夹下Release下.exe文件拷贝到新建的test文件夹下。4.回车会出现下图打印,打印完成新建文件夹会出现一堆东西,此时点击exe文件可以直接运行。有时候为方便在没有QT电脑上执行程序,需要生成可执行文件。5. 将此文件夹打包给其他电脑可直接运行。如下图,图中红线为新建文件夹路径。
2023-08-30 14:32:23 2825
转载 获取秒、毫秒、微秒、纳秒时间差的方法
原文链接:https://blog.csdn.net/MingoJiang/article/details/131287167。
2023-08-24 14:14:39 2733
原创 报错:terminate called after throwing an instance of ‘std::bad_alloc‘ what(): std::bad_alloc
仔细看了下写的代码,想到一个知识点:vector容器的end指向的并不是容器中最后一个元素,而是最后一个元素的下一个元素地址,所以访问了非法内存,故这里的解决方法是:如果要访问容器中最后一个元素,需要将迭代器--,即it--;或者使用.back()来访问最后一位;2,确认是否使用vector,vector超容量时会重新申请二倍内存,因为vector会将老的一块内存,完全拷贝到另一块连续容量为2倍的vector内存中,高峰时内存将时当前系统的3倍,此时可能导致 std::bad_alloc。
2023-07-19 16:51:31 14870
原创 比较容器内字符串大小并按照从小到大顺序排序及输出
本例实际应用场景是包含以时间命名的文件,通过比较时间先后将容器内字符串进行排序,此处比较函数仅使用了compare,(实际有具体的遍历文件夹下所有文件到容器内(这里手动塞了几个时间数据,因此直接使用compare比较大小即可),并找到命名中时间部分,然后比较进行排序)
2023-07-14 09:09:57 107
原创 unsigned char和unsigned short两种类型实现校验和
main函数中屏蔽的为unsigned short型,为屏蔽为unsigned char型实现方法。
2023-07-13 11:42:06 233
原创 expected class-name before ‘{‘ token
namespace就是用来限定定义的使用范围,所有要引用基类,就要把基类的namespace也用上,using namespace ***;2.继承的基类的头文件没有包含进来错误的原因是,该类继承的那个基类的头文件没有包含进来, 包括使用的namespace不对。1.头文件的宏定义是一样的,多个文件的#ifndef AA#define AA....#endif是一样的。
2023-03-18 15:09:15 2292
原创 linux c&&c++关于赋值问题(char*传给另一个char*)
方法一:直接 “char* buf1=char* buf2” ,(!这里的赋值是将buf2的地址赋给了buf1,此后buf2的值改变,buf1也会变,因为buf1此时地址已经指向了buf2的地址!需要知道char*长度,delete防止内存泄漏。仅列出四种,欢迎补充!方法四:sprintf。方法二:strcpy。方法三:memcpy。
2023-03-04 16:14:15 1322
原创 Linux下误按Ctrl+s
在Linux下,Ctrl+S 是暂停该终端,阻止向该终端输出。按下Ctrl+Q就可以了。在Linux终端 Ctrl+Q :恢复向终端输出。用惯了window编辑器的我们,在使用linux。
2023-03-02 16:07:05 285
原创 代码补齐移动快捷键(Eclipse中实践,其他环境下未知)
3.按Shift+Tab键,将多行代码整体向左移动。1.在eclipse中,选中要移动的多行代码。4.按Alt+下键,将多行代码整体向下移动。5.按Alt+上键,将多行代码整体向上移动。2.按Tab键,将多行代码整体右移。
2023-03-02 16:05:10 432
原创 c++中c_str()的用法详解
C中没有string,所以函数c_str()就是将C++的string转化为C的字符串数组,c_str()生成一个const char *指针,指向字符串的首地址。下文通过3段简单的代码比较分析,具体说明c_str()的使用方法和注意事项。如果程序中继续使用c指针,导致的错误是不可预估的。比如:1234变成abcd。c_str()就是将C++的string转化为C的字符串数组!使用strcpy()函数 等来操作方法c_str()返回的指针。c_str()以char*形式传回string内含字符串。
2023-02-13 19:36:48 5027 1
原创 hi3156调试遇到的几个报错
这种漏洞比较容易检测到,具体的表现为在关闭文件句柄时,一直卡在fclose函数中,无法跳出。一、glibc detected an invalid stdio文件指针漏洞。2)内存溢出,malloc申请内存区大小有限,要存数据大于申请区。经验:在编译程序时,尽量添加判断句来保证程序(如下代码所示)二、double free or corruption。1)多次释放同一内存(遇到的是fclose关了两次)以下错误为遇到情况,并不包含所有情况。
2023-02-13 19:24:42 835
转载 Shell比较两个文本
awk内置参数$0表示整行,$1,$2...分别表示各域,内置参数NR,表示记录的计数,awk '{print NR, $0}' file1 file2表示依次读取file1 file2,打印出每行,并且在前面添加行号。方法一中的前一部分,在文件file1中匹配模板来反向匹配文件file2中的内容,即输出文件file2中,在file1中没有内容。命令comm的功能就是逐行比较两个排序好的文件,默认输出有三列:只在file1中有的行,只在file2中有的行,file1和file2中共同有的部分。
2023-01-18 10:40:01 2498
原创 C/C++的位运算
位运算的操作对象是整数类型,在运算过程中,整数被看作二进制的集合,位运算的功能是提供检查和设置二进制的功能。~(位求反),(右移),&(位与),^(位异或),|(位或)。循环右移n位: (xn)。
2023-01-17 10:41:02 226
原创 git的问题(error: object file .git/objects/* is empty...)的解决
第一次遇到时候不想花过多精力在解决这个问题上(工作要保证时间节点),另存为源代码,然后直接删除了本地的代码包括本地库。先贴上找到的正确解决方法的链接:http://stackoverflow.com/questions/11706215/how-to-fix-git-error-object-file-is-empty。我到这一步就已经OK能用了,链接后面还有一些处理我并没有继续做下去(我比较懒,目的就只是修复一下版本库,既然能用了我就不继续搞了,万一又坏了呢)首先,删除所有空白文件。
2023-01-07 15:32:30 2386
原创 小结——编程思维
被动:抓住需求关键,找到模块的输入输出,围绕输入输出来写;对于小功能或者第一版简单功能,使用if语句,不使用while死循环,思路简化,代码简化,能封成函数就封成函数。主动:按部就班的编写,一步步实现,while等循环满天飞,耗时费力不讨好;没有大局观,很容易考虑不全,接着就是各种错误,思维混乱,导致代码写成垃圾;最近着手封装模块,发现主动编程真的很容易陷入死胡同,不如被动着思路清晰。
2022-12-21 16:36:48 83
原创 Linux Ubuntu自带中文(搜狗输入法真的坑)
我用的已经设置好的图,修改有设置图中小键盘旁边会有个设置标志,可以点击设置快捷键等相关设置——Ctrl+Alt+T(召唤终端)——敲击命令:reboot(重启设置才能生效)进入设置(setting)——区域和语言(region&lanaugue)——输入源——添加:汉语(Intelligent Pinyin)和 汉语——置顶。设置——区域和语言——管理已安装的语言——键盘输入法系统——改为IBus——关闭——重启(在终端输入reboot)生效。
2022-12-21 12:52:46 1362
原创 Linux下实现按键控制开关(封装kbhit版)
本文封装Windows自带的kbhit()函数,与上一篇getch()相比有时延需要加回车,不建议使用。
2022-12-12 20:32:34 354
原创 linux C++下实现按键控制开关
实现getch()函数功能的主要思路就是,在输入之前把终端的属性初始化,设置为原始模式,该模式下所有的输入数据以字节为单位被处理。要实现对终端属性的改变需要用到tcgetattr()和tcsetattr()两个函数,其中tcgetattr()函数用于获取当前终端的属性,tcsetattr函数用于将终端设置为参数中结构体指定的属性。getch()函数,是直接从键盘接收一个字符,并立即返回该字符的ASCII码,执行getch()函数时输入的字符时不会在终端回显。()函数和getch()函数的区别。
2022-12-12 20:26:42 538
原创 ceil向上取函数注意
因为a、b均为int型,计算顺序先括号内除法,此时括号内为整数1,故相当于ceil(1),结果仍是1,而不是想要的2;解决办法:将a、b赋值float a = 15;即可得到ceil(a/b)=2。例如:int a = 15;int b = 10;当计算式是int型除以int型时得到的结果仍是int型,此时再用ceil函数不起作用。
2022-12-12 09:00:47 155
转载 C++——多态
重载:在同一作用域;函数名相同、参数不同。重写(覆盖):继承体系中,两个函数分别位于父类和子类的作用域中;函数名、返回值、参数完全相同必须都为虚数重定义(隐藏):继承体系中,两个函数分别位于父类和子类中函数名相同两个函数不构成重写那就是重定义。
2022-11-29 16:11:09 91
转载 Linux访问Windows共享文件夹
博客转自:http://www.01happy.com/linux-access-windows-shares-folders/在Linux下访问Windows的共享文件夹,可以使用mount挂载或者samba连接。1. mount挂载首先创建被挂载的目录:将共享文件夹挂载到windows文件夹:其中几个参数表示含义:cifs:Common Internet File System,可以理解为网络文件系统。usrname:访问共享文件夹的用户名password:访问密码//192.168.
2022-11-29 09:28:43 1409
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人