编程
以实战讲解各种环境的配置等信息。
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
xf807989
这个作者很懒,什么都没留下…
展开
-
linux多条命令的方法
3.&&符号连接,表示当前面的命令执行失败的时候,后面的命令就不执行。如$ cmd1 && cmd2 && cmd3。4.这些连接多条命令的最终会生成一个进程组,例如ctrl+C啥的能结束整个进程组之类的。连接,表示不论前面的命令是否执行成功,后面的命令都执行。1.匿名管道,这个就|下就好了。原创 2023-05-01 17:39:31 · 186 阅读 · 0 评论 -
树莓派的WiringPi的开发
/读取从机指定地址的两个字节,并赋值给value。//打开I2C设备,0x04为扩展板上MCU I2C地址。#include//导入树莓派WiringPi编码I2C控制库。#include//导入树莓派WiringPi编码IO控制库。//初始化WiringPi编码。#include//导入基础库。原创 2023-02-22 00:11:33 · 201 阅读 · 0 评论 -
makefile与configure的LDFLAG、CFLAG、LIBS用法
指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。如果你的头文件不处于gcc默认的路径之中,就需要使用此参数指定。那么gcc默认的搜索头文件的路径是什么呢?gcc 等编译器会用到的一些优化参数,也可以在里面指定非默认路径的库文件的位置。用法:LDFLAGS=”-L/usr/lib -L/path/to/your/lib”。参考:https://blog.csdn.net/qq_31567335/article/details/82470477。原创 2022-12-15 15:00:57 · 857 阅读 · 0 评论 -
vscode编译c代码
Run and Debug栏选择create a launch.json file,任选一项环境生成launch.json.快捷键shift+ctrl+p搜索全局命令,找到C/C++ Edit Configurations(UI)。快捷键shift+ctrl+p搜索全局命令tasks,选择g++ build active file生成配置。一定要下载好两个插件,一个c/c++,另一个 c/C++ compiler run,然后按f6就可以跑了。其实可以通过调试菜单栏,调试配置创建这个文件的。原创 2022-12-12 19:57:47 · 308 阅读 · 0 评论 -
win10默认占用80端口号的解决办法
打开注册表regedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP,在右边找到Start这一项,将其改为0,重启。原创 2022-12-09 10:57:47 · 188 阅读 · 0 评论 -
windows下查看端口被占用和查看对应的进程
netstat -aon|findstr “80” 可以看到80端口被占用的情况,然后找到对应的pid。然后根据pid,tasklist|findstr “1752” 找到对应的进程!原创 2022-12-09 10:55:33 · 126 阅读 · 0 评论 -
ubuntu查询当前进程和结束进程
ps -ef查kill pid 结束原创 2022-12-07 23:22:35 · 273 阅读 · 0 评论 -
ubuntu安装软件包命令
dpkg -i package.deb #安装包。参考https://ipcmen.com/dpkg。原创 2022-12-01 17:22:04 · 1304 阅读 · 0 评论 -
ubuntu 搜索安装包的命令
1.sudo apt-cache search XXX原创 2022-12-01 13:27:06 · 565 阅读 · 0 评论 -
ubuntu网络配置
4.Ubuntu IP设置DNS 修改/etc/resolv.conf,在其中加入nameserver DNS的地址1 和 nameserver DNS的地址2 完成。nameserver 8.8.8.8 #当地dns服务器(用ipconfig /all 查看本地dns,第一个dns是默认的,共有2个dns)表示用vi编辑器(也可以用其他编辑器,如gedit)编辑etc文件夹下modprobe.d文件夹中blacklist.conf文档的内容。注意:只能在root用户模式下才可以修改。原创 2022-12-01 11:41:35 · 1438 阅读 · 0 评论 -
c++之深拷贝和浅拷贝
class A{A(){a=new int[5];}int *a;~A(){delete [] a;}}A a;A b;b=a;a.~A();b.~A(); //这句会报错因为编译器默认是浅拷贝。深拷贝则是如下:class A{A(){a=new int[5];}A(const A& _A){data = new int[5];} // 深拷贝int a;~A(){delete [] a;}}A a;A b;b=a;a.~A原创 2022-04-22 23:10:37 · 900 阅读 · 0 评论 -
cmake注意事项
如果是给vs使用的东西,记住一定要把-Wextra给去掉。原创 2022-03-29 22:43:14 · 83 阅读 · 0 评论 -
linux使用浅谈一
linux所有的命令都是程序,通过bash程序得到执行,也就是先把bash程序克隆一份,然后再把那个程序的内容填充进这个进程(excute过程),然后就有了子进程。原创 2022-03-07 22:21:49 · 501 阅读 · 0 评论 -
编译器和网络通讯的一些看法
编译器有个入门的llvm。还有那些从0造编译器的教程,例如郑刚的等。网络通讯学个libevent入个门。原创 2021-08-31 22:45:08 · 54 阅读 · 0 评论 -
编译a.out到裁剪的内核里面执行
切记编译的时候需要带上-static放到文件系统里就可以执行了。原创 2021-07-24 15:40:54 · 61 阅读 · 0 评论 -
类的一些随想
图形的方式表示一个类应该具有的功能。例如他必须要有放大,缩小,左移,右移等。类也要有个图来说为什么要有这个类?就这样吧!没谁说不可计算的东西就一定没有逻辑在里面。原创 2021-07-20 09:22:11 · 60 阅读 · 0 评论 -
QChart的用法
第一步:在pro里面,添加QT += core gui charts第二步:#include <qchar.h>#include <qchart.h>#include “qpieseries.h”//#include “qchartview.h”#include #include //using namespace QtCharts;using namespace QtCharts;这些都是必须的。第三步:直接调用QChart才不会报错...原创 2021-07-20 09:06:25 · 329 阅读 · 0 评论 -
编译linux内核
第一步:make x86_64_defconfig第二步:make menuconfig1.sudo apt-get install libncurses5-dev2.要选择第三步:make -j41.sudo apt-get install libelf-dev第四步:最终生成的img文件在arch/x86/boot/bzImage目录下!第五步:下载busyboxhttps://busybox.net/第六步:make menuconfig第七步:设置为静态编译。第八步:make原创 2021-05-18 01:08:00 · 56 阅读 · 0 评论 -
windows网络编程通讯模型六
代码抄字:TCP TP网络编程服务器端:#include <stdio.h>#include <stdlib.h>#include <winsock2.h>#define BUF_SIZE 1024void CALLBACK ReadCompRoutine(DWORD, DWORD, LPWSAOVERLAPPED, DWORD);void CALLBACK WriteCompRoutine(DWORD, DWORD, LPWSAOVERLAPPED, ..原创 2021-04-13 11:06:02 · 104 阅读 · 0 评论 -
网络编程通讯模型五
重叠IO模式:为了完成异步IO,调用的IO函数应以非阻塞模式工作。重点并非IO本身,而是如何确定IO完成时的状态。创建重叠io可以用WSASocket函数,成功时返回套接字句柄,失败时返回INVALID_SOCKET.第一个参数:协议簇信息。第二个参数:套接字数据传输方式。第三个参数:两个套接字之间使用的协议信息。第四个参数:包含创建的套接字信息的WSAPROTOCOL_INFO结构体变量地址值,不需要时传递NULL。第五个参数:位扩展函数而预约的参数,可以使用0.第六个参数:套接字属性信息。可以赋予W原创 2021-04-12 22:00:21 · 117 阅读 · 0 评论 -
opencv环境配置
opencv环境配置1.先解压opencv,然后配置好环境啥的。2.项目配置里面。这3个地方后。添加.h文件。#include<opencv2/opencv.hpp>#include “opencv2/highgui/highgui_c.h”#include<opencv2/highgui/highgui.hpp>using namespace cv;要在release里面放这两个dll文件,然后方便执行程序。环境变量,OPENCV_DIR要设置好,原创 2021-01-27 14:44:54 · 84 阅读 · 0 评论 -
分页机制浅谈
分页机制步骤如下:1.从cr3指定页目录所在的内存地址。2。线性地址的高十位,也是1024,因为页目录1024项。对应页目录表中的页表地址3.线性地址的第12-21位,因为10位所以2的10次方等于1024.因为页表1024项。对应物理页首地址。4.线性地址12位,对应一页4M。对应、物理页实际地址。...原创 2020-08-09 16:49:23 · 172 阅读 · 0 评论 -
vs里局部变量的地址值每次打开都不一样的原因
ASLR(Address space layout randomization)是一种针对 缓冲区溢出的 安全保护技术,通过对 堆、 栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止 溢出攻击的目的。据研究表明ASLR可以有效的降低 缓冲区溢出攻击的成功率,如今 Linux、 FreeBSD、 Windows等主流 操作系统都已采用了该技术。该答案引自搜狗百科:https://baike.sogou.com/v99925689.htm...原创 2020-08-09 14:25:08 · 633 阅读 · 0 评论 -
c++里面内嵌汇编操作c++变量的案例源码
#include<iostream.h>void main(){int a=1;int b=5;_asm{mov dword ptr[a],12}cout<<b<<a<<endl;int c;cin>>c;}原创 2020-08-09 13:33:43 · 280 阅读 · 0 评论 -
wait函数
void main(){pid_t pid;char message;int n;int exit_code;printf(“fork program starting\n”);pid=fork();switch(pid){case -1:perror(“fork failed”);exit(1);case 0:message=“this is the child”;n=5;exit_code=37;break;default:message=“this is the原创 2020-07-25 17:23:26 · 184 阅读 · 0 评论 -
fork函数
#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/stat.h>#include<fcntl.h>#include<sys/types.h>void main(){pid_t pid;char *message;int n;printf(“fork program starting\n”);pid=fork();switch(pi原创 2020-07-25 13:42:08 · 153 阅读 · 0 评论 -
操作系统组成部分二
更细的操作系统组成部分:1.boot2.bootloader3.loader4.init5.系统调用6.i/o7.硬盘驱动程序8.文件系统结构9.文件结构10.内存管理11.进程管理12.系统api13.shell14.进程通讯15.fork,exec原创 2020-06-17 14:19:18 · 118 阅读 · 0 评论 -
操作系统的构成
bootloader引导启动loaderi/o文件管理磁盘驱动进程管理系统调用内存管理进程管理原创 2020-05-22 20:37:33 · 276 阅读 · 0 评论 -
五大常用算法
1.分治法:分而治之的思路,典型代表就是二分法等。2.动态规划算法:动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。3.回溯法: 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重原创 2020-05-21 21:25:24 · 213 阅读 · 1 评论 -
内核线程和用户线程
内核线程就是由内核控制线程调度,能利用多核cpu的多条指令同时执行的特性。例如windows线程。用户线程即用户级控制线程调度,这种就没法利用多核cpu的特性了。例如linux的pthread。这种一般由操作系统来决定,普通程序员了解下就好了!除非你打算自己开发操作系统!...原创 2020-05-21 19:15:59 · 134 阅读 · 0 评论 -
socket同步和异步
socket同步指的是必须等待另一头响应了,他才执行其他操作,否则就一直等。socket异步就是发个消息过去,然后啥也不管了,干自己的活去了,等那头发消息来了,他就回来搭理另外一头!原创 2020-05-21 18:07:21 · 401 阅读 · 0 评论 -
协程
协程就是自己写一个协程调度的玩艺,然后自己能控制他的执行,好处是可以省下各种各样的为了同步而设置的锁。不好的地方是没法利用到多核cpu的多核执行的性能。c++20和golang都有现成的框架直接调用就好了,不用自己写调度中心啥的!...原创 2020-05-21 18:05:23 · 116 阅读 · 0 评论 -
多线程的异步
多线程的异步区别于同步,他会继续执行自己要执行的操作,然后直到另外一个线程执行完了,叫他来执行,他就会回来执行。同步采用阻塞的方式来达到多线程同步的目的。原创 2020-05-21 18:03:08 · 107 阅读 · 0 评论 -
软件工程
软件开发有两个模型:瀑布模型和增量模型和敏捷模型等。原创 2020-05-20 23:45:50 · 147 阅读 · 0 评论 -
迭代
没有调用自身的解法叫做迭代。例如一些循环,区别于递归。原创 2020-05-20 22:59:59 · 187 阅读 · 0 评论 -
数学模型
用字母、数字和其他数学符号构成的等式或不等式,或用图表、图像、框图、数理逻辑等来描述系统的特征及其内部联系或与外界联系的模型。它是真实系统的一种抽象。数学模型是研究和掌握系统运动规律的有力工具,它是分析、设计、预报或预测、控制实际系统的基础。数学模型的种类很多,而且有多种不同的分类方法。数学模型的种类很多,而且有多种不同的分类方法。静态和动态模型静态模型是指要描述的系统各量之间的关系是不随时间的变化而变化的,一般都用代数方程来表达。动态模型是指描述系统各量之间随时间变化而变化的规律的数学表达式,一般用原创 2020-05-15 09:22:35 · 979 阅读 · 0 评论 -
贪心算法
贪心算法(又称贪婪算法又称启发式算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。举个例子,找零7元要求找最小的张数,开始搜索到100,50,20和10元都不行,然后5元,然后再来个5元不行,然后2元,ok,找零2个。...原创 2020-05-15 08:46:34 · 216 阅读 · 0 评论 -
回调函数
回调函数是指一个函数用做函数指针的形式被另外一个函数当做参数来使用,这样的好处就是另外一个函数可以随意更换参数来达到高内聚低耦合的目的同时还不影响整个项目的代码的正确性。举个例子,一个人抱着一个娃娃,娃娃就是回调函数,而那个人就是调用回调函数的函数。...原创 2020-05-15 08:38:04 · 126 阅读 · 0 评论 -
递归算法
递归就是调用自身来达到循环的目的,举个简单的例子,看到过那种佛像吗?佛的中间还有个佛像,然后中间那个佛像的中间还有个佛像,然后这样佛像不断的变小和佛像的数量越来越多,直到实在雕刻不上为止,当然递归是没有尽头的,除非有条件判断然后退出。...原创 2020-05-15 08:26:17 · 142 阅读 · 0 评论