- 博客(20)
- 收藏
- 关注
原创 【云存储】shell脚本实现云存储 s3 v4签名,并上传文件到云存储
linux上用shell脚本实现亚马逊云存储协议的s3 v4签名,能实现文件上传到云储存。
2024-03-02 19:54:37
404
原创 [linux系统应用一句话] 字符集编码
这里设置的是终端的显示编码,如果文本数据是utf-8的,这里设置gb2312,则会显示乱码。文本数据是什么格式的,还要看编辑器是设置的什么。: 下图可以看出,文本里的字符顺序是123456,但hexdump在查看时的顺序是两个字交换的,这里在维护时需要注意。:如果你的数据是文本的,可以用vi编辑。编辑时用的什么编码是可以设置的。这里的修改不是永久的,只是对当前的vi实例有效。文本里的实际数据将以这里设置的编码类型进行编码。
2024-02-18 16:45:20
138
1
原创 [代码实战] c语言基于openssl实现的AES算法ECB模式加密代码解读
调用 pkcs7_padding_add,这是填充函数。不管明文满不满足16字节的块大小,都需要进行填充。不是16的整数倍时,要填充补齐16字节。如果是16的整数倍,则需要填充一个整块。电码本模式将明文分为若干个大小相同的块,对每个块进行单独的加密。不同的块加密结果没有关联,每个块可以独立解密。ECB模式的优点是简单,缺点是会被重放攻击。代码中依赖openssl库使用AES的ECB(电码本)模式进行加密和解密。
2024-01-30 13:02:54
259
原创 【代码测试】先pthread_cond_signal, 后pthread_cond_wait,会阻塞
【代码测试】先pthread_cond_signal, 后pthread_cond_wait,会阻塞当无线程在pthread_cond_wait等待时, 发送pthread_cond_signal,啥都不会发生,pthread_cond_signal依旧返回0#include <pthread.h>#include <stdlib.h>#include <stdio.h>pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALI
2021-04-12 17:10:54
646
原创 C语言的curl库开发中的超时设置
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);curl_setopt($ch, CURLOPT_TIMEOUT, 100);例如下载一个mp3文件:CURLOPT_CONNECTTIMEOUT 设置10s,表示建链成功后如果10无响应将会断链。CURLOPT_TIMEOUT 设置为100s,表示如果这个mp3文件100秒还没下载完,就断链。参考:https://blog.csdn.net/andybegin/article/details/8734
2020-09-08 09:40:46
1226
原创 cmake链接的到底是动态库还是静态库
LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/libs)这个命令指定库文件的搜索路径。编译和运行中都有效。所有编出来的可执行文件依赖库可以放在这个目录下,减少对操作系统的目录依赖。但是要注意一点,这里的搜索路径最终是绝对路径,意思也就是编译时就确定了这个目录,运行时也要搞一个相同的路径目录来存放依赖库。TARGET_LINK_LIBRARIES(${LINK_TA...
2020-04-23 17:27:12
2478
原创 关于c库文件操作函数feof的几句话
1、feof在stdio.h中定义2、只有当文件读指针已处于文件结尾,且再次发送读时,feof才会返非03、所有要判断文件是否已到结尾,要先发生一次读,再判断feof的返回状态。char c;c = fgetc(fp);while(!feof(fp)){printf("%X/n", c); //处理完上次读的数据后 c = fgetc(fp); //再读一次,然后在while中判...
2020-01-10 09:24:55
161
原创 理解网络字节序(大端字节序)的几句话
1、在发送网络字节流时,从内存中由低地址向高地址依次取字节发送;2、在接收网络字节流时,从网络流中顺序读出字节,从内存低地址向高地址依次写入3、网络字节序使用的是大端(高位存低地址),网络流先发送的是高位,接收端先收到高位并被存入低地址,所以对于小端cpu,发送时要hton*(),接收后要ntoh*()4、为啥要分大小端?大多认为是cpu硬件设计的历史原因。计算都从低位开始,cpu为了高效计...
2020-01-09 11:20:20
1383
原创 ldconfig失败后大部分命令不能用
今天需要在centos系统上安装一个自己编译的应用程序,由于依赖的动态库太多,我用命令把所有依赖的动态库复制到一个目录下,拷贝到新的centos系统中。通过修改/etc/ld.so.conf来增加一个搜索路径,让后ldconfig使其生效。但是,就在执行完ldconfig后出错了,linux里的所有命令在执行时,都提示段错误,ls、ll、vi\vim、rm等都用不了了。由于系统内有大量资料,系统...
2019-12-30 19:06:42
2181
2
原创 代码片段笔记
#文件名提取#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
2019-12-20 17:49:10
124
原创 使用gsoap开发webserver的客户端与服务端应用demo
最近项目开发使用到gsoap,在百度上搜索到的都是千篇一律的文章,没有一篇能准确全面的解释如何使用gsoap做客户端与服务端应用开发。最准确全面的文档当然是官方的用户开发手册:http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc1.2百度了很多文章,最后还是官方手册解决了我的大部分疑问。再贴出客户端向服务端请求的简单小demo,这个dem...
2019-12-09 11:22:10
250
原创 从套接字句柄获取客户端ip:port
网络通信开发中,如果服务端想获取客户端ip,如果是tcp套接字,用getpeername函数(用法网上很多)。如果是udp套接字,只能从recvfrom函数的第三个参数struct sockaddr*中返回。最近犯的一个低级错误,想用getpeername获取udp客户端ip,获取出来的始终不对打印:client ip =39.127.0.0, port=55569因为这个函数根本就没执行...
2019-12-06 17:14:16
821
原创 coturn的relayed addr地址端口分配策略
1、turn的RELAYED-ADDRESS端口号分配都在文件turn_ports.c中实现。_turnports是关键的结构体类型:struct _turnports { u64bits status[PORTS_SIZE]; u64bits low; u64bits high; u16bits range_start; u16bits range_stop; int...
2019-11-18 16:53:41
581
原创 安装mysql数据库时的一顿操作
记录最近按照mysql的一顿操作。安装包:mysql-8.0.18-linux-x86_64-minimal.tar下载地址:https://dev.mysql.com/downloads/mysql/https://dev.mysql.com/downloads/file/?id=490304详细步骤:解压:tar -xvf mysql-8.0.18-linux-x86_64-mi...
2019-11-15 15:52:42
93
原创 [nginx]用try_files实现优先用本地资源服务,找不到该资源则跳转到回源缓存流程
一、try_file命令介绍1、先看一下try_files命令处于nginx处理11个阶段的位置:typedef enum { NGX_HTTP_POST_READ_PHASE = 0, //读取请求头 NGX_HTTP_SERVER_REWRITE_PHASE, //执行rewrite NGX_HTTP_FIND_CONFIG_PHASE, //根据...
2019-10-17 11:01:42
750
shell脚本实现云存储 s3 v4签名,并上传文件到云存储
2024-03-02
linux中,用shell脚本检查磁盘使用率并清理文件
2024-02-10
c/c++用一个源文件,一个头文件实现的 优先队列定时器 源码,包含测试代码,可运行
2024-01-29
c/c++用一个源文件,一个头文件实现的线程池源码,包含测试代码,可运行
2024-01-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人