- 博客(12)
- 资源 (1)
- 收藏
- 关注
转载 使用条件变量实现线程同步(linux c语言)
pthread_cond_timedwait() 函数只能在 abstime 参数指定的时间内阻塞线程,超出时限后,该函数将重新对互斥锁执行“加锁”操作,并解除对线程的阻塞,函数的返回值为 ETIMEDOUT。注意,当函数接收到“条件成立”的信号后,它并不会立即结束对线程的阻塞,而是先完成对互斥锁的“加锁”操作,然后才解除阻塞。注意,abstime 参数指的是绝对时间,例如您打算阻塞线程 5 秒钟,那么首先要得到当前系统的时间,然后再加上 5 秒,最终得到的时间才是传递的实参值。
2023-06-08 11:16:10 393
原创 纯C语言实现快速排序(挖坑法)
/将key赋值给left和right的相遇点,保持key的左边都是比key小的数,key的右边都是比key大的数。//赋值,然后left作为新坑。PartSort2这个函数是,找left指针和right指针,第一次碰面时的,数组的中的那个位置;//right作为新坑。//最终返回中间位置。quicksort这个函数,引用了递归的思想。
2023-03-29 10:41:11 127
原创 纯C语言解析RTP包的头部
2、填充位(P):占1位,如果P=1,则该RTP包的尾部包含附加的填充字节。3、作用是为了字节对齐,填充字节的数量保存在最后一个字节中 4、扩展位(X):占1位,如果X=1,则RTP固定头部后面就跟有一个扩展头部,即上面的CSRC信息 5、CSRC计数器(CC):占4位,指示 CSRC标识符的数量。6、载荷类型(PT):占7位,标识了RTP载荷的类型,比如是视频还是音频类型 7、序列号(SN):占16位,发送方在每发送完一个RTP包后就将该域的值增加1,接收方可以由该域检测包的丢失及恢复包序列。
2023-03-28 15:13:24 1152
原创 rsa加密(linux C语言)
demo_rsa.cpp文件名//demo_rsa.cpp//linux环境,先安装openssl库//g++ demo_rsa.cpp -lcrypto#include <openssl/rsa.h>#include <openssl/err.h>#include <openssl/pem.h>#include <string.h>#include <iostream>#include <string>#inc.
2021-09-28 16:27:11 981
原创 aes_128加密使用+base64编码(linux c语言)
//编译时gcc aes_128.c -lssl -lcrypto#include <string.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <openssl/aes.h>int aes_encrypt(char* in, char* key, char* out){ if (!in || !key || !out) {...
2021-09-28 16:17:10 1096
原创 UDP服务器和客户端的编写(原创)(linux系统)
服务器:server#include<stdio.h>#include<stdlib.h>#include<pthread.h>#include<string.h>#include<sys/socket.h>#include <sys/epoll.h>#include <arpa/inet.h>#define DEFAULT_HEADBEAT_PORT 7090#define RECV_BUF_SIZE
2021-09-28 15:51:21 180
原创 TCP服务器和客户端的编写(原创)(linux系统)
服务器:#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <unistd.h>#include <ctype.h>#include <netinet/in.h>#include <arpa/inet.h>...
2021-09-28 15:43:50 605
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人