- 博客(30)
- 收藏
- 关注
原创 epoll线程池示例代码
④.如果有任务处理,将任务从任务队列 thrPool->tasks[taskpos] 里拷贝到临时开辟的任务空间里task ,然后通知生产者pthread_cond_signal。②.实际任务总数大于最大任务个数则阻塞等待(等待任务被处理) pool->max_job_num <= pool->job_num,pthread_cond_wait。⑤.释放任务队列空间pool->tasks,线程组空间pool->threads,线程池空间pool。⑤.如果要摧毁线程池,解锁,释放任务空间,做线程退出处理。
2025-04-10 17:25:39
715
原创 线程中的条件变量pthread_cond_t
与互斥锁不同,条件变量是用来等待而不是用来上锁的,!条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量的两个动作:①. 条件不满, 阻塞线程②. 当条件满足, 通知阻塞的线程开始工作条件变量的类型: pthread_cond_t。
2025-04-03 15:09:04
568
原创 高并发服务器--epoll相关函数
是 Linux 系统中用于创建一个epoll实例的系统调用。epoll是一种高效的 I/O 事件通知机制,通常用于高性能网络服务器或需要处理大量文件描述符的场景。
2025-03-31 17:27:37
988
原创 文件与IO
运行结果: :要打开的文件的路径名,可以是相对路径或绝对路径。 :打开文件的标志,用于指定文件的打开方式和操作选项。常见的标志包括:是函数返回的文件描述符。如果成功关闭文件,函数返回0;如果失败,返回-1。运行结果: :文件描述符,代表需要读取的文件或设备。 :指向用户分配的缓冲区的指针,read()函数将把读取到的数据写入该缓冲区。 :需要读取的字节数,表示最多读取字节数据。 read()函数的返回值,成功返回取的字节数,如果读取到文件末尾,返回0;返回-1,并设
2025-03-11 15:49:42
433
原创 int *(**(**ppfunarrpp)(int))[10]的定义和应用
ppfunarrpp是函数指针的指针,函数的参数是int,函数的返回值是指针的指针,这个指针指向一个数组,数组的每个元素是一个指针。 int *(**ppfunarr(int))[10];int *(**(*ppfunarrp)(int))[10] = &ppfunarr; int *(**(**ppfunarrpp)(int))[10] = &ppfunarrp;int *(*parr)[10];其实函数的返回值应该是int *(**parr)[10],解引用一次函数就可以了。parr = *(*ppf
2024-08-12 18:03:26
202
原创 学习笔记----形参指针的指针char *argv[]
2.形参可类比一级指针,&argv是指针自己的地址,argv是指针,有自己的空间,能存放指向的地址,也就是外边实参parameter传进来的地址。可以看出传进来的地址是。1.指针parameter指向的是str_arr[0]的地址,即&str_arr[0],且数组名str_arr也可以表示首元素的地址。1.&argv和argv(&argv[0])不一样,argv是指针,有自己的空间,能存放指向的地址。验证了上面的第二点,数组名没有独立的空间不能指向新的地址,指针有独立的空间,可以存储指向的地址。
2024-07-24 17:31:48
328
原创 C语言的右左法则
右左法则:首先从最里面的圆括号看起,然后往右看,再往左看。每当遇到圆括号时,就应该掉转阅读方向。/*funcparr是函数指针数组*///函数名就是函数的首地址,所以&func1和func1都可以,两种写法/*funcparrp是函数指针数组指针*//*funcparrpp是函数指针数组指针的指针*/return 0;
2024-07-11 20:28:14
491
原创 undefined reference to `__lws_close_free_wsi_final‘的排错与解决方法
遇到undefined reference to `__lws_close_free_wsi_final'这个报错
2024-01-16 15:45:23
517
原创 ./include/libwebsockets/lws-genhash.h:85:18: error: field ‘ctx’ has incomp
‘HMAC_CTX‘ 的类型不完整
2023-12-14 16:11:24
861
1
原创 (CentOS)Freeswitch加载 mod_cdr_pg_csv模块报错fatal error: libpq-fe.h: No such file or directory 的解决办法
【代码】(CentOS)Freeswitch加载 mod_cdr_pg_csv模块报错fatal error: libpq-fe.h: No such file or directory 的解决办法。
2023-12-04 11:34:37
610
原创 Linux 下使用 ifconfig 查看不到 ip 地址,不显示ens33信息的解决方法
Linux 下使用 ifconfig 查看不到 ip 地址,不显示ens33信息的解决方法
2023-11-28 14:33:09
450
1
原创 freeswitch加载moh-shout模块时报错 fatal error: ogg/ogg.h: No such file or directory的解决方法
报错详情:In file included from speex.c:29:0: shout_ogg.h:31:21: fatal error: ogg/ogg.h: No such file or directory #include
2023-11-27 14:33:18
199
1
原创 freeswitch报错-ERR DESTINATION_OUT_OF_ORDER的其中情况及解决办法。
通过使用通道变量,下列命令也能改变主号名称和号码,报错-ERR DESTINATION_OUT_OF_ORDER。
2023-11-22 15:56:18
1000
原创 解决‘mysqlclient.so.21 => not found‘或查询解决依赖问题
此时,再次ldd可执行文件,查看依赖库。没有出现找不到的库文件,运行可执行文件即可。发现是存在mysqlclient.so.21库文件的。发现是找不到mysqlclient.so.21。命令查看可执行程序(动态库)的依赖库。步骤三:如果存在库文件,这只需要通过。当运行可执行文件报依赖库的问题时,如果用户不是root,需要使用。命令查询是否存在此库文件。或者,将用户切换成root。步骤一:我们可以使用。
2023-09-26 18:02:09
1204
1
原创 c语言/c++面试题——char *pt = “AAA“;printf(“%s\n“,pt);*pt = ‘B‘;printf(“%s\n“,pt);是否能运行,能->结果是什么,不能->什么错误
字符常量存储在只读区,指针不能修改指向存储的内容。
2022-09-08 00:12:00
488
原创 c语言/c++面试题——char *(*c[10])(int **p)
3.char *()(int **p) ----> c数组中每一个元素都是函数指针,其所这项的函数返回值是char*类型,且函数带一个指向指针的指针。pt是指针,pt指针指向了由10个char袁术构成的数组,即pt是数组指针。pt是数组,数组是有10个char*指针所组成。2.*c[10] ----> c是一个指针数组。1.c[10] ----> c是数组。
2022-09-07 23:20:21
637
原创 c语言/c++面试题——char *const *(*next)()
4.char *const *(next)() ----> next是函数指针,指向一个没有参数的函数,并且该函数返回值是一个指针,该指针指向一个类型为char的常量指针。3.char *const ----> 应该是一个指针,常量指针(指向常量的指针)char *const *(*next)();请对这一行代码进行解释?2.(*next)() ----> next是函数指针。1.(*next) ----> next是指针。
2022-09-07 22:37:07
544
原创 asterisk运行调试命令
/asterisk & 在后台启动asterisk./asterisk –vvvc 启动asterisk并尽量多的在控制台显示调试信息./asterisk –r 连接asterisk控制台set verbose 9999 设置打印详细信息。
2022-09-06 17:57:07
370
原创 asterisk——分支条件
带条件判断的Goto,通过计算表达式的值,并根据结果的真假将呼叫这发送到一个特定的目的地。NoOp() 不进行操作,可将数值打印到控制台进行调试。
2022-09-06 16:12:09
388
转载 Linux——crontab定时任务
使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户。
2022-08-31 15:01:18
1023
原创 asterisk——dialplan语法
asterisk dialplan定义在目录下名为的配置文件中。dialplan由四个层次的组件构成:上下文、分机、优先级和应用。
2022-08-22 11:24:45
504
原创 ‘TAP驱动未安装或已损坏‘问题的解决方法
'TAP驱动未安装或已损坏'问题的解决方法,当安装软件或登录时,遇到TAP驱动未安装或已损坏的提示时,检查是否安装 TAP Windows适配器V9。
2022-08-11 15:44:36
16904
7
TA创建的收藏夹 TA关注的收藏夹
TA关注的人