上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 71 下一页
摘要: RTM: inet_aton() doesn't appear to support IPv6, inet_pton does. The parameter lists are different. The return values are different. inet_pton() requires a four part dot notation and inet_aton can process some other presentation formats. Don't be surprised that you will encounter similar and 阅读全文
posted @ 2011-03-26 10:17 super119 阅读(1490) 评论(0) 推荐(0) 编辑
摘要: How to generate coredump file and debug it in gdb 1. ulimit -a 可以查看当前所有的limit 2. ulimit -c用来设置coredump。比如:ulimit -c unlimited,就设置不限制生成的coredump文件的大小。也可以ulimit -c 1024,这样就设置了coredump文件大小不超过1M。 3. 运行程序crash之后,core文件生成。此时: gdb <program> <corefile> 或者直接运行gdb,然后在gdb的命令行中输入:core <corefile&g 阅读全文
posted @ 2011-03-26 10:16 super119 阅读(1245) 评论(0) 推荐(0) 编辑
摘要: 性能测试中,Tester程序由start.sh脚本来启动。现在的需求是:用户按下ctrl-c,程序能graceful退出,从而不用重启板子。问题 是:ctrl-c产生信号SIGINT,但是这个信号是传递给脚本进程的,不是传递给Tester进程的。所以这里就存在一个信号传递的问题。解决办法如 下: 1. 在脚本中加入代码: Code: Select allforward_sigint(){ # check out the tester's pid testerpid=$(cat /tmp/tester.pid) kill -2 $testerpid # call analyser and 阅读全文
posted @ 2011-03-26 10:15 super119 阅读(1013) 评论(0) 推荐(0) 编辑
摘要: ignore SIGCHLD信号的作用 -- 防止僵尸进程的产生 signal(SIGCHLD, SIG_IGR); //忽略SIGCHLD信号,这常用于并发服务器的性能的一个技巧 //因为并发服务器常常fork很多子进程,子进程终结之后需要 //服务器进程去wait清理资源。如果将此信号的处理方式设为 //忽略,可让内核把僵尸子进程转交给init进程去处理,省去了 //大量僵尸进程占用系统资源。(Linux Only) Code: Select allsome code();pid = fork(); //生成一个子进程if (pid < 0) // error check. hand 阅读全文
posted @ 2011-03-26 10:15 super119 阅读(1197) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<string.h>intmain(){chara;memset(&a,0xff,1);if(a==0xff)printf("Equal.\n");elseprintf("Notequal.\n");return0;}答案是不相等。可以用gdb来看,a变量在内存中的确是0xff,因为使用memset设置的。但是,由于a的类型是char,最大只能到0x7f,所 以,在做==比较的时候,0xff已经超过了char语义上的限制,所以,相等不成立。如果a是unsigned char 阅读全文
posted @ 2011-03-26 10:10 super119 阅读(1405) 评论(0) 推荐(0) 编辑
摘要: 格式: x /nfu <addr>说明x 是 examine 的缩写n表示要显示的内存单元的个数f表示显示方式, 可取如下值x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进制格式显示变量。i 指令地址格式c 按字符格式显示变量。f 按浮点数格式显示变量。u表示一个地址单元的长度b表示单字节,h表示双字节,w表示四字节,g表示八字节Format letters are o(octal), x(hex), d(decimal), u(unsigned decimal),t(binary 阅读全文
posted @ 2011-03-26 10:09 super119 阅读(22447) 评论(0) 推荐(1) 编辑
摘要: 1. ld的-static开关加上之后,就可以编译出一个静态链接的程序了。要注意该程序用到的所有的库,都要有相应的.a版本,编译的时候作为一个source file放到命令行中即可。光有库的.so没用,需要重新编译该库,让它生成.a文件。2. 要注意ld的一个特性:当ld查找一个symbol的时候,ld只会往后查找,不会往前查找。比如程序以来两个库A和B,而A库又调用了B库中的函数,那 么编译的时候,在命令行上,A库文件要出现在B库文件的前面。当ld发现A库中某个函数找不到时,他就会往后查找,于是在B库中找到了这个函数,OK。如 果AB两个库互相依赖,那么一般命令行中要写成A B A或B A 阅读全文
posted @ 2011-03-26 10:07 super119 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 很多 CPU ,如基于 Alpha, IA-64, MIPS, 和 SuperH 体系的,拒绝读取未对齐数据。当一个程序要求其中之一的 CPU 读取未对齐数据时,这时 CPU 会进入异常处理状态并且通知程序不能继续执行。举个例子,在 ARM, MIPS, 和 SH 硬件平台上,当操作系统被要求存取一个未对齐数据时默认通知应用程序一个异常。对齐性 对齐性是一种内存地址的特性,表现为内存地址模上 2 的幂。例如,内存地址 0x0001103F 模 4 结果为 3 ;这个地址就叫做与 4n + 3 对齐, 4 指出了所选用的 2 的幂的值。内存地址的对齐性取决于所选择的关于 2 的幂值。同样的地址模 阅读全文
posted @ 2011-03-26 10:06 super119 阅读(440) 评论(0) 推荐(0) 编辑
摘要: man fifo to see detail informations.In linux, if an application opened a pipe while another side hasn't opened this pipe, the open will block.You can use `mknod' with S_FIFO attribute to create a FIFO(named pipe), then use open/read/write just as usual. 阅读全文
posted @ 2011-03-26 10:05 super119 阅读(193) 评论(0) 推荐(0) 编辑
摘要: getopt函数可以用来非常方便的处理命令行参数。函数的原型是:int getopt(int argc, char * const argv[], const char *optstring);以下是关键点:1. argc, argv就是main函数的那两个。optstring是我们给出的格式字符串,特别的是格式字符串中的:表示该command option后面是有一个value的,比如:./xtop -n 20 -i 2 1111,在这里optstring就可以写成"n:i:",这表示n和i这两个是command option,而且这两个option后面都需要给value 阅读全文
posted @ 2011-03-26 10:05 super119 阅读(518) 评论(0) 推荐(0) 编辑
上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 71 下一页