- 博客(23)
- 资源 (6)
- 收藏
- 关注
转载 NAT与路由的关系
路由和nat本是相生的,不矛盾的,不用非要割裂得来看。先说说两个东西产生的背景。两个东西都是技术手段,nat:最本质的目的,是为了解决ip地址稀少的问题而诞生的。它使得若干个私有地址能够共用一个合法internet地址成为可能。并且,他把内部地址隐藏起来,具有安全性。路由:它是一种构架的逻辑,使得不分私有公有的地址能够知道信息的路径如何走。以及通过协议,使得较大的网络能够自动学习网络,
2014-11-16 17:14:16
2504
转载 qemu/kvm/qemu-kvm/virsh的区别(转)
qemu是一套虚拟机管理系统,kqemu是qemu的加速器,可以认为是qemu的一个插件;qemu可以虚拟出不同架构的虚拟机,如在x86平台上可以虚拟出power机器; kvm是另外的一套虚拟机管理系统,包括内核虚拟构架和处理器相关模块,其借用了 quem 其它一些组件,kvm的非内核部分是由qemu实现的;加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM 模块是远远
2014-07-11 14:04:22
831
原创 C++之私有继承
在《C++箴言:确保公开继承模拟“is-a”》一文中论述了 C++ 将 public inheritance(公有继承)视为一个 is-a 关系。当给定一个 hierarchy(继承体系),其中有一个 class Student 从一个 class Person 公有继承,当为一个函数调用的成功而有必要时,需要将 Students 隐式转型为 Persons,它通过向编译器展示来做到这
2014-01-12 22:18:46
689
原创 C++之私有继承
在《C++箴言:确保公开继承模拟“is-a”》一文中论述了 C++ 将 public inheritance(公有继承)视为一个 is-a 关系。当给定一个 hierarchy(继承体系),其中有一个 class Student 从一个 class Person 公有继承,当为一个函数调用的成功而有必要时,需要将 Students 隐式转型为 Persons,它通过向编译器展示来做到这
2014-01-12 22:17:51
669
1
转载 Linux 守护进程的编程方法
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本身并不复杂,复杂的是各种版本的Unix的
2014-01-07 17:02:44
490
转载 linux下代替system的基于管道的popen和pclose函数
linux下使用system需要谨慎,那么代替它的方法是什么呢?标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行。这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程。popen函数还创建一个管道用于父子进程间通信。父进程要么从管道读信息,要么向管道写信息,至于是读还是写取决于父进程调用popen时传递的参数。下在给出p
2013-12-19 23:42:31
674
转载 深入分析Windows和Linux动态库应用异同
*深入分析Windows和Linux动态库应用异同* ** 摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率 ,增加程序的可扩展性,便于模块化管理。 但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了两
2013-12-11 22:11:09
501
原创 linux多线程总结
前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)有一int型全局变量g_Flag初始值为0;2) 在主线称中起动线程1,打印“this is thread
2013-12-08 22:13:49
534
转载 在Linux中创建静态库.a和动态库.so
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。 1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为
2013-12-06 09:55:09
815
原创 linux下的静态库和动态库生成
静态库 在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静态库文件中删除文件 m -----把文件移动到指定的静态库文件中 p -----把静态库文件中指定的文件输出到标准输出 q -----快速地把文件追加到静态库文件中
2013-12-05 20:50:00
482
原创 qsort用法总结
用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *)); 各参数:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针用于确定排序的顺序 排序方法有很多种, 选择排序,冒泡排序,归并排序,快速排序等。 看名字都知道快速排序
2013-12-04 16:36:09
537
转载 关于命名管道FIFO不错的总结
pipe是Linux中最经典的进程间通信手段,在终端里通常用来组合命令,例如“ls -l|wc -l”。它的作用很直观,就是使得前一个进程的输出作为后一个进程的输入,在概念上很符合“管道”的意思。用管道实现“ls -l | wc -l”《情景分析》上有这个例子的代码,我觉得很适合用来了解管道。这里假设终端对应的进程为PA,wc、ls是PA先后创建的两个子进程ch
2013-11-26 10:49:19
802
原创 linux下的文件操作
大家都知道,在linux下,一切皆文件,因此对文件的操作是很常用,很重要的. 我以前通常用linux的系统调用如open, read, write及close等,它们通常是无缓冲的调用。而标准C的文件操作函数fopen, fread, fwrite及fclose等是基于linux系统调用那个之上的,具有缓冲区。 以上都有文件指针的定位操作如seek及fseek等。 在C++中引入了流的概念,如io
2013-11-25 15:08:19
715
原创 linux读写配置文件
在Linux中实现类似windows中获取配置文件的函数GetProfileString。在读取配置文件时,window环境下,有GetProfileString函数,而Linux下则没有。网上找了⼀个能 实现其功能的函数,原理很简单。如下所示,基本思想是捉住配置文件中用“[]”标记的段没有“=”,而非“[]”段有“=”这⼀特征,先找section段,再找键,得到对应的值。 配置文件示例
2013-11-25 14:10:07
1215
原创 C++STRING类常用函数
C++的string类型相当于一个容器,内部封装了很多非常使用的算法,用起来很方便,但遗憾的是,没有尽可能的利用起来,因此抽时间根据网上的资料进行了总结。string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造
2013-11-25 11:25:52
538
原创 记录日志类
近段工作中需要记录接受到的数据,由于只是一串字符串,放入数据库实在是没有必要,因此改为写记录日志,别人给了一个日志类,感觉太复杂了,看起来浪费时间,于是自己封装了一个日志类。包括基本的时间戳,日志级别等。//写文件日志#ifndef MY_LOG_H#define MY_LOG_H#include #include #include #include #include #inc
2013-11-25 10:18:19
649
原创 linux下的串口通信类
众所周知, 计算机内部CPU与接口之间是按并行方式进行工作的,而许多外设和计算机之间是按串行方式进行通信,所谓的串行方式,就是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输.对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍. 所以不要看不起串行通信,它是一
2013-11-25 09:53:06
1375
转载 [转]epoll的内核实现
2013-5-27阅读309 评论0epoll是由一组系统调用组成。 int epoll_create(int size); int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); int epoll_wait(int epfd, struct epoll_event *
2013-11-22 09:09:15
737
转载 epoll使用及总结
#include deque>#include map>#include vector>#include pthread.h>#include semaphore.h>#include time.h>#include sys/time.h>#include sys/shm.h>#include errno.h>#include sys/types.h>#in
2013-11-21 20:25:19
797
原创 建立高并发服务器的一种有效方式
前一段时间,用到了串口通信和TCP通信,学习了epoll机制,实现了对多个IO通信触发的监听,业务处理和IO监听放在同一个线程处理,这种做法处理几个通信请求还行,若有成千上万个链接请求,则处理业务就会浪费大量的时间,而延缓的对新的链接的监听和响应。一种解决方法是每次获取一个请求,但这会耗费大量的创建线程的时间,而在多个线程里进行监听,则对同一个请求,会有多个线程去处理。用下面的方法可以很好的解决这
2013-11-21 19:50:32
1004
原创 线程相关及需要注意的地方
1.创建thread.int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(*start_routine)(void*), void *restrict arg); 参数1:pthread_t *restrict th
2013-11-21 12:33:14
705
转载 linux c++类中的成员函数里创建多线程要注意的地方
如何在linux 下c++中类的成员函数中创建多线程linux系统中线程程序库是POSIX pthread。POSIX pthread它是一个c的库,用C语言进行多线程编程我这里就不多说了,网上的例子很多。但是如何在C++的类中实现多线程编程呢?如果套用C语言中创建多线程的方式,在编译的时候会出现...does not match `void*(*)(void*)..这样的错误。出现这种情
2013-11-19 20:33:46
996
原创 map的常见操作和使用示例
C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值。 一、map的说明 1 头文件 #include 2 定义 map my_Map; 或者是typedef map MY_MAP; MY_MAP my_Map; 3 插入
2013-11-14 16:27:45
640
西安电子科技大学《信号与系统》电子教案.rar
2010-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人