自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

intheworld

蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。

  • 博客(7)
  • 资源 (3)
  • 收藏
  • 关注

原创 调试器原理之ptrace调用学习

其实很早以前就对调试器技术感兴趣了。以前玩板子的时候用了JTAG,当时我觉得这东西好神奇。前面我下载了一份GDB源码,可惜弄了几天都没有看出门道。昨天瞄了一眼《开源应用程序架构》,不出意外的看到了GDB。里面说在Linux下面调试器的功能主要都是靠ptrace调用实现的。我突然觉得有戏,感觉找到了点希望(不得不说,网上真心没找到GDB实现方面的资料,顶多是使用教程)。然后我就和ptrace干上了。

2014-11-26 16:24:05 2453

原创 putchar的线程安全

前面调用的stdio函数一般都是printf和fgets。这些函数都是一次读入或输出一串 数据。他们的操作是满足原子性的。ANSI C中同时还有putchar和getchar这样的函数。 在新版本的putchar和getchar都是有加锁操作的,用来保护缓冲区不被破坏。我开始 觉得这有点不好理解,以为单个字符原子性是可以保证的,其实不然。假设putchar用 如下的伪代码实现:

2014-11-25 11:01:18 686

原创 多线程程序中的stdio同步

在多线程程序中,stdio文件描述符是被各个线程共享的。如果多个线程需要进行stdio操作,那么stdio同步就是一个值得关注的问题了。为了实现stdio线程安全,flockfile和funlockfile调用就显得非常重要了。 在很多的情况下,一些stdio操作以不被中断的顺序是非常重要的。

2014-11-25 10:42:25 674

原创 多线程程序中的fork调用

多线程程序执行fork调用是一个比较复杂的问题。首先fork调用的行为大概是复制一个和父进程一样的子进程,然后两个进程以不同的值返回。理论上,父子进程应该是非常相似的。fork调用在单线程上是非常容易理解的,在多线程上就不太好理解了。在多线程程序里存在着多个执行流,换句话说,就是fork()调用点只是一个程序的一个并行执行分支而已。说了这么多,其实真相非常简单。下面是《POSIX多线程程序设计》中

2014-11-24 12:57:43 1885

原创 tinyhttpd在Linux编译

前面在博客园里看到了的《程序员最值得关注的10个C开源项目》。其中有一个tinyhttpd的项目,是一个小型的http服务器实现。以前也粗略的看过tomcat的实现,不过没有深入很多,比较代码量在那里。而这个tinyhttpd项目,服务器代码只有区区500行,确实适合初学者练手。不过这个项目并不能直接在Linux上编译运行。它本来是在solaris上实现的,貌似在socket和pthread的实现

2014-11-12 01:03:53 7976 5

原创 Ubuntu Kylin 14.04中vsftpd安装

首先明确一下,我装这个FTP只是为了

2014-11-11 21:30:24 902

原创 原理与应用

原理和应用在很多时候是矛盾的。

2014-11-08 12:28:02 503

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除