- 博客(18)
- 收藏
- 关注
转载 域名,ip相互转换(Linux,getaddrinfo, getnameinfo)
/* ip_to_hostname ip */#include #include #include #include #include #include #include int main(int argc, char *argv[]){ if (argc != 2) { fprintf(stderr, "Usag
2013-06-18 15:12:00 1541
转载 Makefile中的常用函数
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$()或是${}这里,就是函数名,make支持的函数不多。是函数的参数,参数间以逗号“,”分隔,而
2012-11-30 12:29:12 400
原创 gettid
#include #include #include #include pid_t gettid(void){ return syscall(SYS_gettid); } int main() { int i=0; printf("%u %lu",gettid(),pthread_self()); for(
2012-09-06 18:07:42 524
原创 宏:集中定义,多次使用
1:集中定义#include :CI_CFG_OPT("", tcp_sndbuf_min, ci_uint32,"Minimum value for SO_SNDBUF for TCP sockets. Set via O/S interface.", , tcp_sndbuf, CI_CFG_TCP_SNDBUF_MIN, MIN, MAX, binco
2012-08-29 10:48:37 374
原创 Tip of Makefile
打印变量值:config: @echo "pppppppppppppp" $(ROOTDIRS-y) $(ROOTDIRS-) $(ROOTDIRS-n)
2012-08-17 14:34:37 215
原创 Good Doc
Linux的TUN/TAP编程:http://blog.chinaunix.net/space.php?uid=317451&do=blog&id=92474
2012-07-30 10:24:19 312
转载 check kernel memory leak
How to check kernel memory leak:Step 1: Compile kernel with "CONFIG_DEBUG_KMEMLEAK" option enabled. You can get to this option via: make menuconfig, "Kernel Hacking", "Kernel Memory Leak Detector"
2012-07-25 11:11:03 564
转载 NUD
1) 在Linux内核中, 将能与自已在硬件层直接通信的外部主机的网络接口设备称为"邻居",用neighbour结构描述, 它包含设备的硬件地址信息.系统中所有的IP包都通过路由所绑定的邻居发送到接口设备上.邻居由邻居表(arp_tbl)来索引, 用邻居的IP地址可查询邻居表中某个设备的邻居.2) 当邻居接收到要发送的IP包时, 如果邻居的硬件地址还未解析,则将发送包暂时缓冲在arp_qu
2012-07-23 11:03:03 7416
原创 Kernel note
__init和__initdata: Linux在arch/$(ARCH)/kernel/vmlinux.lds中定义了.init段。__init和__initdata属性的数据都在这个段中,当内核启动完毕后,这个段中的内存会被释放掉供其他使用。
2012-07-13 14:09:25 208
原创 关于改写代码
1:当改写代码的时候,一定要清楚为什么改,以及改写后的变化是什么。如在改写ipsec ipv6的时候,当把ah6_input()变动后,结果发现变量改后结果一样,浪费了时间。2:注意是否需要宏如一个结构中某一项可能在#ifdef中,不注意可以引起编译错误。3:注意错误处理查看是否需要加入log,mib或在/proc里加信息
2012-07-10 09:41:03 514
原创 linux下查看动态库和静态库及其可执行文件
静态库用ar -t YourFile动态库用 nm -D YourFileldd 查看可执行文件链接了哪些 系统动态链接库nm 查看可执行文件里面有哪些符号strip 去除符号表可以给可执行文件瘦身strings 从可执行程序里面提取出来一点什么文本信息
2012-06-27 17:19:28 1972
原创 用__builtin_return_address获得程序运行栈情况
#include #include #include #define MAX_LEVEL 4void sigfunc(int signo){ printf("%s(0): %p\n", __func__, __builtin_return_address(0)); exit(1);}int b(){ printf("%s(0): %p\n", __fun
2012-06-20 16:03:06 5909
原创 64位机器的地址操作
#include #include #include #include struct s1 { int a; char *c;};void main(){ char t='a'; struct s1 *u=malloc(sizeof(struct s1)); printf("size of s1: %d\n", sizeof(struct
2012-06-20 14:37:14 632
转载 Linux 信号signal处理机制
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。一、信号的基本概念本节先介绍信号的一些基本概念,然后给出一些基本
2012-06-20 12:19:45 332
原创 NAT到127.0.0.1的数据包为何被丢弃
Add a filter rule:iptables -t nat -I PREROUTING 2000 -p icmp -j DNAT --to-destination 127.0.0.1Ping this host, the packets are dropped.Debug steps:1. cat /proc/net/nf_conntrackNothing is
2012-06-20 11:11:00 886
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人