摘要: 这是关于如何用各种可以得到的接口为linux开发网络程序的系列文章的第一篇。就像大多数unix-based的操作系统一样,linux支持将tcp/ip作为本地的网络传输协议。在这个系列中,我们假定你已经比较熟悉linux上的c编程和linux的一些系统知识诸如signals,forking等等。
这篇文章是关于如何用bsd套接口创建网络程序的基础介绍 。在下一篇中,我们会解决涉及到建立(......
摘要:nf ------------------- the number of fields in the current input record. nr ------------------- the total number of input records seen so far. ofmt ------------------- the output format for numbers, &......
Linux 下 C++程序的异常处理技巧处理 c++ 中的异常会在语言级别上遇到少许隐含限制,但在某些情况下,您可以绕过它们.学习各种利用异常的方法,您就可以生产更可靠的应用程序. 【程序编程相关:
操作系统安全防范简述:Win2…】 【推荐阅读:
感受未来:longhorn4051完全…】 保留异常来源信息 【扩展信息:
WindowsServer2003全接触】 在 c++中,无论何时在处理程序内捕获一个异常,关于该异常来源的信息都是不为人知的.异常的具体来源可以提供许多更好地处理该异常的重要信息,或者提供一些可以附加到错误日志的信息,以便以后进行分析. 为了解决这一问题,可以在抛出异常语句期间,在异常对象的构造函数中生成一个堆栈跟踪.exceptiontracer 是示范这种行为的一个类. 清单 1. 在异常对象构造函数中生成一个堆栈跟踪
// sample program: // compiler: gcc 3.2.3 20030502 // linux: red hat #include <execinfo.h> #include <signal.h> #include <exception> #include <iostream> using namespace std; ///////////////////////////////////////////// class exceptiontracer { public: exceptiontracer() { void * array[25]; int nsize = backtrace(array, 25); char ** symbols = backtrace_symbols(array, nsize); for (int i = 0; i < nsize; i++) { cout << symbols[i] << endl; } free(symbols); } }; 管理信号 每当进程执行一个令人讨厌的动作,以致于 linux? 内核发出一个信号时,该信号都必须被处理.信号处理程序通常会释放一些重要资源并终止应用程序.在这种情况下,堆栈上的所有对象实例都处于未破坏状态.另一方面,如果这些信号被转换成 c++ 异常,那么您可以优雅地调用其构造函数,并安排多层 catch 块,以便更好地处理这些信号. 清单 2 中定义的 signalexceptionclass,提供了表示内核可能发出信号的 c++ 异常的抽象.signaltranslator 是一个基于 signalexceptionclass 的模板类,它通常用来实现到 c++ 异常的转换....
下一页 摘要:关于正则表达式的一个问题首先明确一下什么是匹配 匹配可以从两个方面来理解 1 一个正则表达式和一个字符串是否匹配 在perl中 =~ 代表捆绑 也就是让正则表达式去匹配指定的字符串 如果如果用匹配的符号形式来表现 对于 /regular/ =~ "string" 如果返回值为真 则说/regular/ 匹配了"string" 2 一个正则表达式不只可以匹配一......