摘要:
作为四个内部类型转换操作符之一的dynamic_cast和传统的C风格的强制类型转换有着巨大的差别。除了dynamic_cast以外的转换,其行为的都是在编译期就得以确定的,转换是否成功,并不依赖被转换的对象。而dynamic_cast则不然。在这里,不再讨论其他三种转换和C风格的转换。首先,dynamic_cast依赖于RTTI信息,其次,在转换时,dynamic_cast会检查转换的source对象是否真的可以转换成target类型,这种检查不是语法上的,而是真实情况的检查。先看RTTI相关部分,通常,许多编译器都是通过vtable找到对象的RTTI信息的,这也就意味着,如果基类没有虚方法 阅读全文
posted @ 2011-11-02 22:09
Lunaa
阅读(122)
评论(0)
推荐(0)
摘要:
作为四个内部类型转换操作符之一的dynamic_cast和传统的C风格的强制类型转换有着巨大的差别。除了dynamic_cast以外的转换,其行为的都是在编译期就得以确定的,转换是否成功,并不依赖被转换的对象。而dynamic_cast则不然。在这里,不再讨论其他三种转换和C风格的转换。首先,dynamic_cast依赖于RTTI信息,其次,在转换时,dynamic_cast会检查转换的source对象是否真的可以转换成target类型,这种检查不是语法上的,而是真实情况的检查。先看RTTI相关部分,通常,许多编译器都是通过vtable找到对象的RTTI信息的,这也就意味着,如果基类没有虚方法 阅读全文
posted @ 2011-11-02 22:09
Lunaa
阅读(215)
评论(0)
推荐(0)
摘要:
C语言系统资源控制(getrlimit && setrlimit)2007-08-17 00:40每一个进程都有自己的一组资源限制,在(*)inux系统中我们可以通过#include int getrlimit(int resource, struct rlimit *rlim);int setrlimit(int resource, const struct rlimit *rlim);这2个API来取得和设置资源getrlimit用来取得setrlimit用来设置 这二个参数都需要一个要控制的资源 比如控制CPU、内存、文件描述符个数等等的控制,作为第一个参数传入,第二个参 阅读全文
posted @ 2011-11-02 21:58
Lunaa
阅读(148)
评论(0)
推荐(0)
摘要:
#include #include #include #include #include #include int main(void) { int i = 0; int socket_descriptor = -1; rlimit ResLimit; ResLimit.rlim_cur = SHRT_MAX; ResLimit.rlim_max = SHRT_MAX; setrlimit(RLIMIT_NOFILE, &ResLimit); while (true) { socket_descriptor = socket(AF_INET, SOCK_STREAM, 0); ... 阅读全文
posted @ 2011-11-02 21:54
Lunaa
阅读(523)
评论(0)
推荐(0)
摘要:
#include #include #include #include #include #include int main(void) { int i = 0; int socket_descriptor = -1; rlimit ResLimit; ResLimit.rlim_cur = SHRT_MAX; ResLimit.rlim_max = SHRT_MAX; setrlimit(RLIMIT_NOFILE, &ResLimit); while (true) { socket_descriptor = socket(AF_INET, SOCK_STREAM, 0); ... 阅读全文
posted @ 2011-11-02 21:54
Lunaa
阅读(167)
评论(0)
推荐(0)
摘要:
poll vs select vs event-based I failed to find a thorough comparison page on poll() vs select() so I wrote my own. If you find flaws or have additions, please let me know! My blog post also provides some background.Differences between poll() and select() and to the end some mentions about the more m 阅读全文
posted @ 2011-11-02 19:52
Lunaa
阅读(149)
评论(0)
推荐(0)
摘要:
poll vs select vs event-based I failed to find a thorough comparison page on poll() vs select() so I wrote my own. If you find flaws or have additions, please let me know! My blog post also provides some background.Differences between poll() and select() and to the end some mentions about the more m 阅读全文
posted @ 2011-11-02 19:52
Lunaa
阅读(145)
评论(0)
推荐(0)
摘要:
在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看:lsof -n|awk'{print$2}'|sort|uniq-c|sort-nr|more 在系统 阅读全文
posted @ 2011-11-02 17:27
Lunaa
阅读(594)
评论(0)
推荐(0)
摘要:
在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看:lsof -n|awk'{print$2}'|sort|uniq-c|sort-nr|more 在系统 阅读全文
posted @ 2011-11-02 17:27
Lunaa
阅读(164)
评论(0)
推荐(0)
浙公网安备 33010602011771号