- 博客(78)
- 收藏
- 关注
原创 wget ERROR: cannot verify www.libssh.org‘s certificate, issued by ‘CN=R10,O=Let‘s Encrypt,C=US’: U
【代码】wget ERROR: cannot verify www.libssh.org‘s certificate, issued by ‘CN=R10,O=Let‘s Encrypt,C=US’: U。
2024-10-28 11:08:14 82
原创 libtool版本更新
如果需要更新,找到旧版本的libtool位置,通常在/usr/bin/libtool。# 使用下面的命令更新软链接(替换/usr/bin/libtool为实际的路径)# 步骤1: 下载所需版本的libtool。# 首先找到当前安装的libtool的位置。# 步骤3: 更新软链接(如果需要)# 步骤2: 解压缩并安装。
2024-10-22 11:16:22 244
原创 strings+objump查看二进制内容
是特殊的段(section),它们通常由编译器或链接器自动创建,用于存放程序运行时所需的不同类型的数据。命令用于在对象文件或二进制文件中查找可打印的字符串。当用于查看包含上述段的二进制文件时,: 包含未初始化的全局变量和静态局部变量,其中变量的初值通常为0。命令会显示这些段的名称,但它们通常不包含可打印的字符串。如果你需要查看这些段的内容,你可以使用调试工具,如。: 包含已初始化的全局变量和静态局部变量。: 包含动态链接信息,用于支持动态链接。来查看程序的段内容。
2024-10-16 17:46:40 167
原创 python学习之字符串操作
print(str2.strip("12")) # 传入的"12",其实就是"1"和"2"都会移除,是按照单个字符。print(str[0:-1]) # 打印字符串第一个到倒数第二个字符(不包含倒数第一个字符)print(str[2:5]) # 打印字符串第三到第五个字符(包含第五个字符)t = ('1','2','3','4','5') #元组转字符串。l = ['h','e','l','l','o'] #列表转字符串。print(id(new_str)) #返回新的字符串。
2024-09-11 10:45:51 300
原创 python列表判断是否为空的三种方式
列表是否为空判断a=[]一:if a:else:二:b = len(a)if b == 0:else:三:if not a:else:运行结果:
2024-09-10 16:24:44 355
原创 python字典和列表学习
print("get=",d.get('k1')) #根据key获取value。print(d.keys()) #显示多有key。print(d.values()) #显示所有值。d.pop('k1') #删除key和value。print(d.items()) #按列表显示。l.insert(2,10) #根据索引添加。print(len(d)) #显示字典长度。l.append(6) #列表尾追加。l.remove(6) #按值删除。l.pop(2) #根据索引删除。d.clear() #情况字典。
2024-09-10 16:18:36 375
原创 python连接MySQL获取表中数据
连接数据库db='test',try:# 创建游标对象# 执行查询语句# 获取查询结果# 输出查询结果else:finally:# 关闭数据库连接。
2024-09-06 17:29:52 746
原创 linux查看系统版本和内核版本
查看 `/etc/os-release` 文件。使用 `uname -a` 查看所有系统信息。查看 `/proc/version` 文件。使用 `lsb_release` 命令。查看 `/etc/issue` 文件。1. 查看 Linux 系统版本。2. 查看 Linux 内核版本。使用 `uname` 命令。
2024-09-03 10:09:48 759
原创 Windows+cmake加载lib/dll的一些坑
cmake在编译makelist.txt时,编译出的makefile中会存在概率libtest.lib和libtest.dll的情况,dll的概率大,这个可以通过CMakeCache.txt确定编译时生成的是那个。程序执行失败,{PROJECT_SOURCE_DIR}/lib找不到dll,需要一个类似Linux情况下指定 运行时动态库的功能。2、 NAMES test指定库的全程libtest.lib。1、将dll和二进制放到同一个目录下,运行。编译完二进制程序可以正常执行。
2024-08-23 17:54:43 190
原创 连接串口线配置
1、进入桌面,找到“我的电脑”,将鼠标放在其上,右键鼠标选择“属性”,进入到。2、或者直接搜索 设备管理器->端口,我的win11。系统信息>相关内容->设备管理器->端口。二、xshell登录连接。
2024-08-23 11:26:20 500
原创 netstat命令
netstat是一个用来查看网络状态的重要工具。查看TCP相关的网络信息时,一般使用。查看UDP相关的网络信息时,一般使用。N状态以外的连接信息,可以删去。
2024-08-07 07:30:00 215
原创 HTTPS协议
服务端在使用HTTPS前,需要向CA机构申领⼀份数字证书,数字证书里含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书中获取公钥即可,证书就如身份证,证明服务端公钥的权威性。申请证书时,需要在特定平台生成,会同时生成一对密钥对,即公钥和私钥。其中公钥需随着CSR文件,一起发给CA进行权威认证,私钥服务端自行保留,用来后续进行通信(即用来交换对称秘钥)证书可以理解成是⼀个结构化的字符串,包含了以下信息:证书发布机构、证书有效期、公钥、证书所有者、数据签名。
2024-08-06 08:00:00 243
原创 线程池技术
在线程池中存在一个任务队列,当有新的任务到来的时候,就可以将任务Push到线程池中,在线程池中默认创建10个线程,这些线程不断检测任务队列中是否有任务,若有任务就取出任务,然后调用该任务对应的Run函数对该任务进行处理,若线程池中没有任务当前线程就会进入休眠状态。要解决问题就需在服务端引入线程池,线程池的存在就是为了避免处理短时间任务时创建与销毁线程的代价,还能够保证内核充分利用,防止过分调度(调度周期过长)单纯多线程存在的问题。
2024-08-02 08:00:00 352
原创 listen监听套接字和accept返回的套接字区别
综上所述,listen监听套接字和accept返回的套接字在TCP/IP网络通信中各有其独特的功能和用途,它们共同协作实现了服务器与客户端之间的可靠通信。
2024-08-01 08:00:00 602 1
原创 交叉编译工具链整理
是一个交叉编译器(cross-compiler)的名称,用于在一种架构(如 x86_64 或 ARM)的计算机上编译出另一种架构(在这个例子中是 ARM)上运行的程序。这样的编译器允许开发者在一种类型的计算机上(比如x86_64的PC)为另一种类型的计算机(比如基于ARM的嵌入式设备)编译软件。表示这不是为特定的ARM厂商或变种定制的编译器,而是一个通用的ARM架构编译器。是一个针对 ARM 架构的交叉编译工具链的名称,通常用于在基于 x86 的系统(如个人电脑或服务器)上编译针对 ARM 架构的代码。
2024-07-26 14:22:04 1188
原创 Windows下查看端口是否监听
在控制台输入: netstat -aon|findstr "8080"再次输入:taskkill /pid 6344 /f。win + r 输入 cmd。
2024-07-24 16:28:15 571
原创 Linux获取线程调度策略pthread_attr_getschedpolicy
函数是 POSIX 线程(pthread)库中用于获取线程属性对象中的调度策略的函数。在实时系统中,调度策略决定了线程如何被调度器选择来执行。函数允许你查询一个已创建的线程属性对象(类型)中设置的调度策略在Linux系统中,线程(或更一般地说,进程)的调度策略决定了系统如何分配CPU时间给不同的任务。Linux提供了多种调度策略,其中两种实时调度策略是SCHED_FIFO(先进先出)和SCHED_RR(轮转,Round-Robin)。
2024-07-24 08:30:00 608
原创 git clone/push报错:HTTP Basic: Access denied
1. 如果账号密码有变动用这个命令git config --system --unset credential.helper 重新输入账号密码应该就能解决了。进入控制面板》用户账号》凭据管理器?windows凭据》普通凭据,在里面找到git,点开编辑密码,更新为最新密码之后就可以正常操作了。原因:本地git配置的用户名、密码与gitlabs上注册的用户名、密码不一致。
2024-07-21 06:45:00 245
原创 swapon命令
此外,如果系统中配置了开机自启的swap分区,在关闭它们时需要谨慎操作,以避免系统在重启后自动重新启用这些分区。swapoff命令用于关闭系统上的swap分区,从而将其从可用的交换空间中移除。适用范围:swapoff命令适用于多种Linux发行版,包括RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE和Fedora等。使用场景:在关闭swap分区后,使用free指令可以观察到系统的swap数值减少,这通常发生在需要回收磁盘资源或优化系统内存使用时。
2024-07-20 08:00:00 430
原创 docker: error pulling image configuration: download failed after attempts=6: dial tcp i/o timeout
启动nginx报错:1、配置镜像源vim /etc/docker/daemon.json输入以下内容:{ "registry-mirrors":[ "https://i1el1i0w.mirror.aliyuncs.com", "https://hub-mirror.c.163.com", "https://registry.aliyuncs.com", "htt
2024-07-18 14:24:30 1860
原创 scanf和sscanf函数使用
sscanf:解析字符串,按照指定格式存储到变量中。scanf:从键盘读取数据,按照格式存储到变量中。其后是一序列数目不定的指针参数,存储解析后的数据.format:字符串格式描述;str:待解析的字符串;
2024-07-18 08:30:00 227 1
原创 scp命令使用
SCP是Secure Copy Protocol(安全拷贝协议)的缩写,是SSH(Secure Shell)协议的一部分,用于在网络之间传输文件。其使用加密的方式在本地主机和远程主机之间复制文件。
2024-07-17 09:51:16 1390
原创 C语言宏函数使用
预处理指令来定义的。它们不是真正的函数,而是在编译前由预处理器处理的文本替换指令。宏函数常用于执行简单的替换或计算,并且可以用于定义常量、简化代码或执行一些简单的条件编译。/输出:The maximum value is: 10。// 定义一个宏函数,用于计算两个数中的较大值。宏函数(通常称为宏或宏定义)在C和C++中是通过。
2024-07-17 08:30:00 187
原创 Linux c函数fprintf和fwrite区别
fprintf和fwrite是C语言中用于将数据写入文件的两个函数,它们在功能、参数、数据处理方式、可读性和性能等方面存在显著差异。
2024-07-16 08:30:00 535
原创 Linux抽象套接字
在UNIX和类UNIX系统中,socket编程提供了一种机制,允许进程之间进行通信。其中,UNIX域套接字(UNIX domain socket)是一种特殊的套接字,用于同一台机器上的进程间通信(IPC)。UNIX域套接字可以使用两种类型的地址:路径名套接字(pathname socket)和抽象套接字(abstract socket)。
2024-07-15 15:28:51 921
原创 linux内核中的HZ
是一个非常重要的宏定义,它代表了内核的“心跳”频率,即每秒内核时钟中断的次数。这个值在不同的系统和架构上可能有所不同,但通常是一个固定的值,比如100、250或1000等,这取决于硬件的能力和内核的配置。这样的设计可以使得内核能够更精细地控制时间相关的操作,提高系统的响应性和效率。这个表达式在内核代码中经常用于计算与时间相关的值,尤其是在需要基于时间间隔进行操作的场景中。也是一个整数,它代表的是在内核时钟中断计数上的倍数,而不是真正的时间长度(秒或毫秒)。例如,在内核的定时器或调度器代码中,可能会使用。
2024-07-15 14:58:41 591
原创 git 撤销操作
在 Git 中,撤销修改可以通过多种方式实现,具体取决于你想撤销的修改类型(未提交的修改、已提交的修改、合并等)。这个命令会撤销工作区中指定文件的所有未提交修改,恢复到最近一次提交的状态。这个命令会将工作区和暂存区的所有修改都撤销到最近一次提交的状态,请慎用,因为它会丢失所有未提交的修改。这个命令会生成一个新的提交,用于撤销指定的提交(通过提交哈希值指定)。这个命令会将指定文件从暂存区移除,但保留工作区的修改。这个命令会撤销最近一次提交,但保留修改在暂存区。这个命令会撤销最近一次提交,并丢弃所有修改。
2024-07-10 09:41:51 223
原创 Linux下多进程访问同一个共享库处理流程
需要注意的是,虽然代码段是共享的,但并不意味着物理内存中的每一页都被所有进程同时访问。当多个进程共享同一块物理内存时,如果其中一个进程试图修改这块内存(例如,修改一个全局变量的值),系统会为该进程创建一个这个内存页的副本,并将修改应用到这个副本上,而不是原始的内存页。这样,其他进程仍然可以看到原始的内存页内容,而修改的进程则看到了它自己的修改版本。的代码段(即包含函数和常量的部分)通常只会被加载到内存中一次,并被多个进程共享。)被多个进程加载时,通常并不会将整个库“加载”到内存中两次。
2024-06-23 07:00:00 368
原创 Linux 多进程情况下文件读写加锁
文件读取加锁:#include #include #include #include #include #include #define LOCK_FILE "/root/priv/cjson/test.lock"#define DATA_FILE "json.txt" int main() { int fd_lock,
2024-06-20 17:42:03 1786
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人