|
|
发表于 2006-4-5 15:14:35
|
显示全部楼层
哦,七年前开始写UNIX应用程序,今天有人问我有没有用过read/write,感觉有点怪。
我的意思是说read/write不属于glibc,而是内核提供的system call,它的实现自然也要到内核代码中去找。版主为什么就是不承认自己说错了呢?
我是看到版主对read/write的第一反应竟然是glibc,楼主又想知道read/write的实现,那是在glibc里找不到的,才跳出来说两句的,只是澄清一下,语气有点戏谑,在此致歉,还望海涵。
但是仍然要严肃指出的是:将一个系统调用误认为是标准库的一部分是不应该的。
虽然说对于应用程序开发者来说,系统调用应该和普通函数一样的,但是有时又不得不清醒认识到这是一个系统调用,要慎用,系统调用进入内核空间,开销较大,最典型的例子就是直接用read/write很多时候就不如用带缓存的标准I/O库效率高,那样可以减少进入内核空间的次数。我曾经到yahoo面试,其中一个问题就是你用read/write还是标准I/O库,为什么,什么时候用read/write,什么时候用标准I/O库?我认为应该分清楚。 |
|