c/c++
kankan231
这个作者很懒,什么都没留下…
展开
-
gcc编译器的使用
1.GCC简介GCC(GNU Compiler Collection)是一套功能强大、性能优越的编程语言编译器,它是GNU计划的代表作品之一。GCC是Linux平台下最常用的编译器,GCC原名为GNU C Compiler,即GNU C语言编译器,随着GCC支持的语言越来越多,它的名称也逐渐变成了GNU Compiler Collection。下面对GCC的基本使用方法进行介绍。2转载 2013-06-04 18:38:20 · 1007 阅读 · 0 评论 -
gcc,g++编译链接有关的路径
在Linux下编译链接c/c++程序时可能会遇到找不到头文件,找不到库文件,或者在原创 2014-04-21 13:13:05 · 10738 阅读 · 0 评论 -
stl容器学习
1. STL有6种序列容器类型 1 vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vector即一个连续内存的大小的感觉。通转载 2014-04-09 16:42:59 · 502 阅读 · 0 评论 -
STL容器适配器
STL学习系列之六—容器适配器STL提供了三种容器适配器:stack,queue,priority_queue。适配器并不是第一类容器,因为它们并没有提供与元素的保存形式有关的真正数据结构实现,并且适配器不支持迭代器。适配器的优点是:能够使程序员选择一种合适的底层数据结构。这三个适配器类都提供了成员函数push和pop,能够在每个适配器数据结构中正确地插入和删除元素转载 2014-04-09 22:52:38 · 659 阅读 · 0 评论 -
Linux线程的读写锁
读写锁 (rwlock)功能特点简介读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可能的读者数为实际的逻辑CPU数。写者是排他性的,一个读写锁同时只能有一个写者或多个读者(与CPU数相关),但不能同时既有读者转载 2014-04-11 10:13:10 · 818 阅读 · 0 评论 -
Linux c++ 线程池及其实现
因为毕业设计里面要用到线程池,所以研究了一下,然后自己用c++实现了一个jib原创 2014-04-25 22:59:55 · 4870 阅读 · 0 评论 -
c++智能指针及其实现
在c++中,程序员需要自己管理原创 2014-04-12 15:01:45 · 668 阅读 · 0 评论 -
Linux动态库与静态库的制作
原文:http://yanghe9012.blog.163.com/blog/static/21398220320137982452330/转载 2014-04-14 11:04:12 · 592 阅读 · 0 评论 -
配置开发支持高并发TCP连接的Linux应用程序全攻略
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制: [speng@as4 ~]$转载 2014-05-26 14:40:00 · 599 阅读 · 0 评论 -
一个比nginx速度更快的HTTP服务器
原文:http://www.cnblogs.com/clowwindy/archive/2011/09/23/a_http_server_faster_than_nginx.html首先承认这个标题标题党了:)。在上次的FreeBSD和linux的nginx静态文件性能对比测试 后,我萌发了自己动手做一个简单的Web Server来搞清楚nginx高性能背后的原理的想法。最后成功实转载 2014-05-28 15:39:23 · 1479 阅读 · 0 评论 -
快速排序
原文:http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快转载 2014-06-14 18:32:50 · 695 阅读 · 0 评论 -
转载的几篇网络编程的好文章
http://blog.chinaunix.net/uid-23069658-id-3271110.html原创 2014-04-18 22:21:59 · 679 阅读 · 0 评论 -
C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)
详解link 有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后, 或许会有一些答案。 首先看看我们是如何写一个程序的。如果你在使用某种IDE(Visu转载 2014-05-03 13:09:19 · 1021 阅读 · 0 评论 -
c++ string学习
一,C语言的字符串在C语言里,对字符串的处理一项都是一件比较痛苦的事情,因为通常在实现字符串的操作的时候都会用到最不容易驾驭的类型——指针。比如下面这个例子://example 1:char str[12] = "Hello";char *p = str;*p = 'h'; //改变第一个字母 //example 2:cha转载 2013-12-17 13:53:03 · 601 阅读 · 0 评论 -
linux c线程池简单实现
大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时间内必须处理数目巨大的连接请求,但是处理时间却是比较短的。在传统的多线程服务器模型中是这样实现的:一旦有个请求到达,就创建一个新的线程,由该线程执行任务,任务执行完毕之后,线程就退出。这就是"即时创建,即时销毁"的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数非常频繁,那么服转载 2013-12-26 12:20:15 · 814 阅读 · 1 评论 -
Linux epoll模型
定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。因为它会复用文件描述符集合来传递结果而不是迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一个原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核转载 2013-12-26 12:36:24 · 625 阅读 · 0 评论 -
linux后台服务编程简单样例
样例代码如下:#include#include#include#include#include#include#include#includevoid get_format_time(char *str){ time_t now; struct tm *timenow; time(&now); timenow = localtime(&now);原创 2014-02-26 14:28:52 · 1863 阅读 · 0 评论 -
linux tcp多线程服务器与客户端编程实例
服务器端:#include#include#include#include#include#includeusing namespace std;void *run(void *arg);int main(void){ int fd=0,res=0; unsigned int port=8888; struct sockaddr_in my_addr; //原创 2014-03-08 16:41:47 · 7386 阅读 · 4 评论 -
gcc与g++的区别
gcc和g++都是GNU的一个编译器;这两者的区别:1.从源文件上看,对于文件后缀(扩展名)为.c的test.c文件,gcc会把它看成是C程序,而g++则会把它看成是C++程序;而对于文件后缀(扩展名)为.cpp的test.cpp文件,gcc和g++都会把它看成是C++程序;注意:虽然C++是C的超集,但是两者在语法要求上还是有区别的,C++的语法要求更严谨一些;2.从编译器角度看,在转载 2014-03-15 16:00:26 · 672 阅读 · 0 评论 -
socket阻塞与非阻塞,同步与异步、I/O模型
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理转载 2014-03-27 23:40:30 · 693 阅读 · 0 评论 -
字符串搜索之蛮力搜索算法
这是最简单的一种字符串搜索算法,也是效率最低的字符串搜索算法了直接上代码: const char* search(const char* str, const char* subStr){ int strLen=strlen(str); int subLen=strlen(subStr); int i,j,tmp; for(i=0;i<=(strLen-subLen);i+原创 2014-03-28 16:34:33 · 1372 阅读 · 1 评论 -
字符串搜索算法之Sunday
SUNDAY 算法描述:字符串查找算法中,最著名的两个是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore)。两个算法在最坏情况下均具有线性的查找时间。但是在实用上,KMP算法并不比最简单的c库函数strstr()快多少,而BM算法则往往比KMP算法快上3-5倍。但是BM算法还不是最快的算法,这里介绍一种比BM算法更快一些的查找算法。例如我们要在"subs原创 2014-03-28 16:27:27 · 3166 阅读 · 2 评论 -
Linux下遍历所有文件及目录
源码如下: #include #include #include #include #include void printdir(char *dir, int depth){ DIR *dp; struct dirent *entry; struct stat statbuf; if((dp = opendir(dir)) == NULL) {转载 2014-03-27 16:56:03 · 3060 阅读 · 0 评论 -
tcp/ip学习笔记
http://blog.csdn.net/zcjrun/article/details/6274011 TCP/IP学习笔记(一)一、 TCP/IP结构: TCP/IP是一个四层协议,结构如下: 1、应用层:各种应用程序和协议,如Http、FTP等。 2、传输层:TCP和UDP TCP提供一种可靠的运输层服务,但UDP是不可靠的,不能保证数据转载 2014-03-19 18:03:52 · 2756 阅读 · 0 评论 -
Linux--进程组、会话、守护进程
1:进程组(一个或多个进程的集合) #include pid_t getpgrp(void); getpgrp()用来取得目前进程所属的组识别码。 此函数相当于调用getpgid(0) #include > pid_t getpgid(pid_t pid); getpgid()用来取得参数pid指定进程所属的组识别转载 2014-04-16 13:16:54 · 1639 阅读 · 0 评论 -
Linux网络编程之原始套接字-ping协议实现
原文:http://blog.chinaunix.net/uid-25885064-id-3156983.html转载 2014-05-30 15:47:25 · 1270 阅读 · 0 评论