- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 sendto 返回errnor 1,错误码1 Operation not permitted
使用udp套接字发送失败,返回-1,错误码为1,ping操作显示Operation not permitted这个是防火墙导致的,使用iptables关掉防火墙去就没问题。iptables -F
2018-11-22 22:13:22 5931
原创 C代码开发遇到的问题 变量初始化和结构体指针移动
1. 变量初始化函数内部的变量如果不初始化的话默认不是0而是一个随机值。下面的程序用来打印一个未初始化的无符号的整型值,执行几遍,每次的结果都会不一样#include <stdio.h>void PrintUint(){ /* 默认是随机值,不一定是0 */ unsigned int i; if (i != 0) { ...
2018-11-17 10:50:01 599
原创 Linux 内核源码分析 IPv6报文接收处理流程
内核版本 3.4.39实现一个IPv6报文转发功能的时候,需要对IPv6报文的扩展选项进行处理,还是直接参考下内核的处理比较稳妥,整理了IPv6报文的内核处理流程,如下图:...
2018-11-17 10:22:40 2829
原创 Linux信号 六 信号与线程的关系
" POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称. POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作...
2018-11-10 14:47:14 674
原创 Linux信号 五 信号挂起与信号掩码操作接口集
A signal may be blocked, which means that it will not be delivereduntil it is later unblocked. Between the time when it is generatedand when it is delivered a signal is said to be pending. ...
2018-11-10 14:35:40 1295
原创 Linux信号 四 异步等待信号与同步等待信号接口
信号的同步等待和异步等待区别就是信号处理函数的执行与否,异步等待是信号处理函数已经执行了,同步等待是信号处理函数还没有执行。异步等待接口:pause() 和 sigsuspend()1. pause()/** * 等待信号 * pause()函数将调用进程/线程挂起,使之进入可中断的睡眠状态,直到传递了一个信号为止。 * 这个信号的动作或者是执行用户定义的信号处理函数,或者是终...
2018-11-10 12:04:03 1911
原创 Linux信号 三 信号发送接口集合
信号发送接口包括raise,kill,killpg,tkill,tgkill,pthread_kill,sigqueue等。1. raise()/** * raise用于向进程自身发送信号 * 成功返回0,失败返回非0值,并置errno. * 只有信号处理函数执行完毕之后,raise才能返回。 * * 对于单线程的程序而言,相当于调用了如下语句: * kill(getpid(...
2018-11-10 10:31:30 974
原创 Linux信号 二 信号处理函数注册
每一个信号都有一个信号处理函数,可以是SIG_IGN, SIG_DFL或者是用户自定义的处理函数。使用用户自定义的处理函数需要注册,注册接口有如下两种。第一种是signal调用#include <signal.h>/** * sighandler_t是GNU的扩展,如果在glibc下面使用的话,编译的时候需要加上-D_GNU_SOURCE * 或者手动定义 */...
2018-11-10 09:19:16 2792
原创 Linux信号 一 信号可靠性与分类
开发SNMP的时候用到了Linux信号机制,总结了一下关于信号的知识。信号是一种进程间通信手段,本质是一种软件中断,用来处理异步事件。信号机制是Unix家族里一个古老的通信机制。传统的信号机制有一些弊端,更为严重的是信号处理函数的执行流和正常的执行流同时存在,这可能会对软件运行带来一定问题。目录1. 信号的生命周期2. 信号的产生3. 信号的处理4. 信号的分类5. 信...
2018-11-09 08:56:28 933
原创 Golang Study 三 map的顺序输出
GO语言中遍历map输出的时候是无序的,不同的遍历会有不同的输出结果,如果想要顺序输出的话,需要额外保存顺序,然后再从map中读取。随着Go语言的不断发展,官方或许会提供额外的顺序读取map方法,目前要想这么做的话就得自己实现了。下面是一个顺序读取map例子,将map的key值存储到一个slice数组中,然后对数组进行排序,这样就可以通过slice数组里的值顺序去读map。package ...
2018-11-08 22:49:43 4437
原创 SNMP功能开发简介 六 snmp功能开发阶段性总结
先说客户需求:能够通过SNMP协议获取设备信息便于管理。客户提出的需求信息转化成MIB结点都是Get类请求。背景&方案:我们的产品业务层是使用Go语言开发的,系统层基于OpenWrt(一个嵌入式的 Linux 发行版)。SNMP功能一年前在上家公司里接触过,当时是因为生产产品的时候需要通过snmp去进行相关的升级操作,那个时候还专门学测试了一下MIB结点的添加,也能够成功运行。虽说接触...
2018-11-04 13:13:08 2243 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人