1.自己架台本地DNS服务器,它不管解析什么域名都是先和根域名服务器打交道,自己处理迭代过程,不知这样可行性怎么样?(2010-5-12)
2.DNS中MX、PTR和SMTP的历史关系?(2010-5-13)
3.Lame Server?上级授权你负责某个域的解析工作,但问你一个该你负责的域名你却解析不了。原因:DNS服务没启动、没有该域名的资料。
4.可重入和线程安全的区别
可重入:一个函数可以同时被调用,不会有影响
线程安全:一个函数可以被多个线程同时调用,不会有影响
可重入>线程安全,需要更强的条件
malloc是线程安全的,是因为它加了线程锁保护了其中的临界区,但是它不是可重入的,因为里面有静态变量,如果同时被进入,那么就会发生错乱.
大致上,一个函数如果使用了静态变量,那么就是不可重入的.(摘录于converse)
c中printf也是不可重入的,不能在中断处理中调用此函数,易死锁。。
siganl handler中使用可重入的函数输出调试信息
例如
sprintf(buf, fmt, ...);
write(STDOUT_FILENO, buf, sizeof(buf));
不在信号处理函数中做业务处理,使用标记位,在程序中进行处理。。。
#include <stdio.h> #include <signal.h> #include <unistd.h> #include <sys/time.h> void gotsig(int n) { printf("b"); }
int main() { struct itimerval value; struct sigaction sact; sigemptyset( &sact.sa_mask ); sact.sa_flags = 0; sact.sa_handler = gotsig; sigaction(SIGALRM,&sact,NULL); value.it_interval.tv_sec = 0; value.it_interval.tv_usec = 1000; value.it_value.tv_sec = 0; value.it_value.tv_usec = 1000; setitimer(ITIMER_REAL, &value,NULL); while(1) { printf("a"); } }//flw2的代码
|
阅读(1486) | 评论(0) | 转发(0) |