- 博客(17)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
转载 Linux中exec命令相关
Linux中exec命令相关:exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息。 bash shell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等等。内部命令是由特殊的文件格式(.def)所实现,如cd、his
2014-04-09 18:28:23 878
原创 C++ 内存分配方式 堆与栈的区别
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
2014-04-08 22:39:18 697
原创 回调函数
1、什么事回调函数回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
2014-04-08 21:29:56 750 1
转载 typedef typeof define区别认识
(1) typedef 作用是为一种数据类型定义一个新的名字,可以是内部数据类型(char,int等),也可以是自定义的数据类型(struct,void (*myfunction)(),char *等等).(也许比较常见的typedef用法就是定义一个函数指针,上面的myfunction, 还有结构体了)如:typedef 返回类型(*新类型)(参数表) typedef i
2014-04-04 17:03:23 5109
转载 I/O多路复用select,Poll epoll 的比较
select,poll,epoll简介selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大3 对socket进行扫描时是线性扫描
2014-04-03 22:20:52 1054
转载 linux异步IO的两种方式
知道异步IO已经很久了,但是直到最近,才真正用它来解决一下实际问题(在一个CPU密集型的应用中,有一些需要处理的数据可能放在磁盘上。预先知道这些数据的位置,所以预先发起异步IO读请求。等到真正需要用到这些数据的时候,再等待异步IO完成。使用了异步IO,在发起IO请求到实际使用数据这段时间内,程序还可以继续做其他事情)。假此机会,也顺便研究了一下linux下的异步IO的实现。linux下
2014-04-03 21:48:30 12472 2
转载 fcntl函数说明
(1)fcntl函数说明前面的这5个基本函数实现了文件的打开、读写等基本操作,这一节将讨论的是,在文 件已经共享的情况下如何操作,也就是当多个用户共同使用、操作一个文件的情况,这时,Linux 通常采用的方法是给文件上锁,来避免共享的资源产生竞争的状态。文件锁包括建议性锁和强制性锁。建议性锁要求每个上锁文件的进程都要检查是否有锁存,并且尊重已有的锁。在一般情况下,内核和系统
2014-04-03 21:08:31 732
转载 Unix Socket编程--I/O复用之select模型
一。之前写过一篇关于并发服务器的处理机制,其内容是这样的:考虑到有多个客户连接的情况下,服务器在收到每一个新的客户的连接请求时,都会创建一个新的连接套接字,而原来的监听套接字将保留以继续监听后续的连接请求;如果服务器不能立刻接受后来的连接,他们将会被添加到队列中等待被处理。当服务器调用fork()来为自己创建拷贝时,打开的连接套接字将被新的子进程所继承。新的子进程将和该客户进行连接
2014-04-03 20:43:02 631
转载 I/O子系统:select,poll,epoll,kqueue, iocp(Windows)及各种I/O复用机制 模式Reactor Proactor
常见的I/O模型及其区别首先,介绍几种常见的I/O模型及其区别,如下:《Unix网络编程》blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions
2014-04-03 20:34:27 2291
转载 进程间数据通信方式和特点
由于不同的进程运行在各自不同的内存空间中.一方对于变量的修改另一方是无法感知的.因此.进程之间的信息传递不可能通过变量或其它数据结构直接进行,只能通过进程间通信来完成。根据进程通信时信息量大小的不同,可以将进程通信划分为两大类型:控制信息的通信和大批数据信息的通信.前者称为低级通信,后者称为高级通信。低级通信主要用于进程之间的同步、互斥、终止、挂起等等控制信息的传递。高级通
2014-04-03 18:09:42 984
转载 c++继承中的内存布局
今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ O
2014-04-03 16:54:56 528
转载 IPC通信比较
IPC通信1、单工单工就是指A只能发信号,而B只能接收信号,通信是单向的,就象灯塔之于航船——灯塔发出光信号而航船只能接收信号以确保自己行驶在正确的航线上。 2、半双工半双工就是指A能发信号给B,B也能发信号给A,但这两个过程不能同时进行。最典型的例子就象我们在影视作品中看到的对讲机一样:3、全双工比半双工又进了一步。在A给B发信号的同时,B也可以给A发信号。典型的例
2014-04-03 15:54:45 953
转载 c++类的内存布局
本文基本上是对于Stanley B.Lippman的Inside The C++ Object Model一书第一章第三章的概括,描述了c++类的内存布局情况.c++的类的内存布局有如下规则:1. Nonstatic data member 存放在Class Object中;2. Static data member, static/nonstatic member functio
2014-04-03 15:53:48 597
转载 C++ 下 typeof auto
现在我们有这样一坨代码:[cpp] view plaincopystd::vectorint> arr; // ... for(std::vectorint>::iterator iter = arr.begin(); iter != arr.end(); ++iter) { // ... }
2014-04-01 21:42:12 1246
原创 C++箴言<34>:接口继承和实现继承的区别
(public) inheritance 这个表面上简单易懂的观念,一旦被近距离审视,就会被证明是由两个相互独立的部分组成的:inheritance of function interfaces和 inheritance of function implementations。这两种 inheritance 之间的差异正好符合本书 Introduction 中论述的 function de
2014-04-01 20:35:37 730
转载 c++的四种类型转换
一、reinterpret_cast: 是特意用于底层的强制转型,导致实现依赖(implementation-dependent)(不可移植)的结果,这种转换不用于修改指针变量值数据存放的格式(不改变指针变量值),只需在编译期间重新解释指针的类型就可以做到。并不会改变指针的类型,只是为了编译通过。而且仅限于指针的操作。例如,将一个指针转型为一个整数。
2014-04-01 17:00:27 630
转载 C++ fill() fill_n() back_inserter 简析
fill 和fill_n函数是C++ Primer第十一章泛型算法部分内容,并把它们称为写入元素算法,也就是说这两个函数只能对输入范围内已存在的元素进行写入操作。如果试图对空容器进行fill_n操作,会导致严重的运行错误,所以在对元素进行写入操作时要检查目标的大小是否足以存储要写入的元素。fill函数的作用是:将一个区间的元素都赋予val值。函数参数:fill(vec.begin(), v
2014-04-01 16:21:57 705
C++析构函数是怎么出来的?
2015-12-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人