C语言
文章平均质量分 75
C编程的积累
wangxinyu2011
本人于2011年大学毕业后,一直从事家用网络设备的软件开发工作。从刚入职场的小白,到现在仍在奋斗的路上,一路走来得到了同事、领导、开源社区、技术博客等的帮助。一直想着在自己知识经验范围内,将自己浅薄的总结,提供给需要的人进行参考。技术的共享,开源社区的繁荣,我们每个从事技术开发的人都将受益。
展开
-
贝叶斯分析思路 通俗讲法
先从一个日常问题入手我们假设 (以下均为假设概率,方便理解没有任何实际意义)A事件为:一个人得癌症。B事件为:一个人吸烟。P(A) 为一个人得癌症的概率。 假设为1%。P(B) 为一个人吸烟的概率。假设为2%。现在你是一名医生,此时一个人来看病,疑似癌症。则根据先验概率(就是上面假设的已知情况),此人得癌症的概率为 1%。 经过你这位老中医一顿望闻问切, 了解到这个人吸烟。现在请问这个人得癌的概率是多少?根据概率算法, 一个人得癌,又同时吸烟,则 P = P(A)*P(B).原创 2021-06-12 23:23:51 · 4918 阅读 · 3 评论 -
autoconf automake使用
cmake 与autoconf automake使用的举例目录一、简介二、示例过程如下1、源文件2、通过autscan命令,产生 configure.scan文件,修改为configure.ac3、执行aclocal,产生aclocal.m4 配置文件4、执行autoconf, 产生configure文件5、执行autoheader 产生config.h.in6、创建Makefile.am文件7、根据情况,创建一些常用的文档文件NEWS README AUTHORS原创 2021-04-18 18:33:01 · 7139 阅读 · 2 评论 -
cmake使用
cmake 与autoconf automake使用的举例目录一、简介二、示例过程1、源文件2、生成CmakeLists.txt3、使用cmake命令生成Makefile编译三、总结一、简介CMake是开源、跨平台的构建工具,在需要编译的目录中,编辑简单的CMakeLists.txt配置文件,即可通过cmake命令来生成Makefile。非常好用。二、示例过程1、源文件在inc目录下为头文件在src目录下为源文件其中编译过程依赖于libm.so.原创 2021-04-18 18:26:50 · 7054 阅读 · 0 评论 -
十 ubus安装编译
ubus是openwrt平台上的一种进程间通信机制,用起来非常方便,且移植性强,符合设计中的迪米特原则,可以异步开发。因此被扩展到很多软件中,通用性好,不用重造轮子,也方便与其它人共同开发。我们自己在Coding过程中,或设计系统框架时,也可以将ubus作为系统的一般机制来使用。目录一、源码包获取1. 源码包可以通过下载openWRT中的源码。2. 或获取ubus的git库3. 或通过下面分享链接 (也是从openwrt里单独提取的,笔者测试过)二、构建过程三、简单测试...原创 2021-03-15 00:18:14 · 15573 阅读 · 8 评论 -
proc文件的简单读写
在开发模块功能时,需要用到一些调试或者传值给模块的方法,最简单的就是构造一个proc文件,然后配置传值或查看 。如下提供了一个简单模板,需要时可以直接复制过去使用。/* Init a test proc file 'btn_test'*/#include <linux/proc_fs.h>static char nvram_query_str[256]={0};static ssize_t btn_test_read(struct file *file, char _原创 2020-11-25 18:12:18 · 19634 阅读 · 0 评论 -
汉诺塔hanoi C语言
#include <stdio.h>char hanoi_buf[3][100];int each_num[3];int steps = 0;int numbers;void init_hanoi_buf(int n){ int i = 0; numbers = n; for(i =0;i < n; i++) { hanoi_buf[0][i] = n - i; } each_num[0] = n;}void print_hanoi_b原创 2020-10-24 21:08:17 · 18200 阅读 · 0 评论 -
UDP分两次接收数据包 MSG_PEEK
问题:今天在测试e_link协议时,使用SOCK_DGRAM UDP连接服务器,由于协议由定长头部,加数据组成,且头部中包含了数据的长度,因此设计时分两次进行接收。先接收头部,解析出数据长度,再次接收数据。但头部接收正常,但数据就读不到了...socket(AF_INET, SOCK_DGRAM, 0)connet(ser_addr, addr_len)recv(sock, head, HEADER, 0)data_len = ntohl(head->length)r原创 2020-09-22 17:51:33 · 19215 阅读 · 0 评论 -
goahead content-length为0时的问题
gohead问题描述UI将获取扫描无线列表的接口formWifiApScan,由get换成了POST,此时无法获取到数据,通过抓包分析,为webserver未正常及时返回数据,同时看到content-lengthy为0。分析过程今天晚上又与李权跟了一下这个问题,之前良明遇到过,了解了个大概,但还是没完全弄清楚,借这个机会,一起深挖了一下。结果为:处理空悬,未调用注册的回调处理,如果没有超时结束,那么将一直处于此状态,而非循环。几个问题:对于goahead协议状态处理还是不深,socke.原创 2020-08-15 18:18:24 · 19285 阅读 · 0 评论 -
IPv6环境下路由器支持域名登录
问题描述:在IPv6 的环境下,路由器设备默认为桥接模式,域名登录存在访问不了的情况。分析:原来的IPv4环境:浏览器进行IPv4+DNS解析 -----》 符合特定的域名,进行拦截回复----》DNS解析出地址,进行页面访问现在IPv6+IPv4的环境:浏览器进行DNS解析,则会分成如下4类 序号 IP DNS协议 1 IPv4 A(请求IPv4地址..原创 2020-07-09 17:08:05 · 19741 阅读 · 0 评论 -
extern C 在c 与 cxx间的使用
1. cxx实现了函数的重载,同一个函数名,参数可以不同,在test.cxx中如下代码(1)cxx的函数原型#gcc -c test.cxx#readelf -s test.o函数实际上带了类型,这种是无法给C程序进行调用的(2)因此采用 extern "c" 对函数进行定义#gcc -c test.cxx#readelf -s test.o与正常的C函数一致, 可以正常调用。...原创 2020-05-17 16:48:05 · 18803 阅读 · 0 评论 -
数字选择问题
有一组数字,如 “1888”,“245”,“666”,“555”,“444” , 每个数中选取一个数(或跳过),构成一个新数字:其中的每个数都是递增的。 "1888" ---》 1 "245" ---》 2 "666" ---》 6 "555" ---》 跳过 "444" ---》 跳过则形成为新数为126, 这也是能形成...原创 2020-02-04 11:17:48 · 17485 阅读 · 0 评论