Chinaunix首页 | 论坛 | 博客
  • 博客访问: 151123
  • 博文数量: 32
  • 博客积分: 2053
  • 博客等级: 大尉
  • 技术积分: 382
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 12:45
文章分类

全部博文(32)

文章存档

2011年(12)

2010年(20)

分类: 系统运维

2010-05-12 22:45:18

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的代码


阅读(1458) | 评论(0) | 转发(0) |
0

上一篇:开博第一天

下一篇:经典文章集

给主人留下些什么吧!~~