c++/c
文章平均质量分 90
yueguanghaidao
这个作者很懒,什么都没留下…
展开
-
socket编程:SO_REUSEADDR例解
SO_REUSEADDR有什么用处和怎么使用。而且很多网友在编写网络程序时也会遇到这个问题。所以特意写了这么一篇文章,希望能够解答一些人的疑难。 其实这个问题在Richard Stevens的《Unix网络编程指南》卷一里有很详细的解答(中文版P166-168页)。这里我只是写几个基本的例子来验证这个问题。 首先声明一个问题:当两个socket的address和转载 2011-12-25 09:48:46 · 1485 阅读 · 0 评论 -
浅析函数调用过程
一个函数到底是怎么调用的,返回值是如何返回的,这里面学问真的很多,让我们来小小的分析一下。。。。我们看一个很简单的C代码,通过gdb调试来分析函数调用过程。平台和工具:ubuntu12.04+gcc 4.6.3+GNU gdb 7.4-2012.04cs.c:int add(int a,int b){ return a+b;}int main(){int a=1;原创 2012-08-21 22:29:16 · 1800 阅读 · 0 评论 -
堆的应用
一:堆排序算法#include #include using namespace std;#define LEFT(i) (2*(i)+1)#define RIGHT(i) (2*(i)+2)// 16(0)// / \ // 10(1) 8(2) // / \ //原创 2012-09-07 23:10:14 · 2264 阅读 · 0 评论 -
递归和分治
分治(divide and conquer)是基于多分枝递归的一种算法。简单的说就是把一个大问题分解为多个类型相同的子问题,最后把这些子问题的解合并起来就是问题的解。我们看一下典型的递归和分治算法。问题1: 插入排序的递归算法思路:1.首先找到突破点->> 如果共有n个数,如果前面n-1个都已排序,那么我只要把最后一个数插入到正确的位置即可。那如何让前n-1个都已排序呢,如原创 2012-08-29 00:34:57 · 7643 阅读 · 0 评论 -
RTTI(dynamic_cast与typeid)
RTTI 运行时类型识别,程序能够使用基类的指针或引用来检索所指对象的实际派生类型C++通过两个操作符提供RTTI1.dynamic_cast 操作符,将基类的指针或引用安全的转换为派生类的指针或引用2.typeid操作符,返回指针或引用所指对象的实际类型dynamic_cast:使用dynamic_cast模拟虚函数调用请看下面这个小程序#incl原创 2012-09-02 23:46:24 · 2778 阅读 · 0 评论 -
指针本质论
指针本质论 1.指针是什么? 和一般变量有什么区别? 指针就是地址,和一般变量没有本质区别,仅仅是它有自己的规则。int a=100; int *p=&a;printf("%d\n",a); // 100printf("%p\n",p); //0xbfa47858a是一个变量名,类型是int,值是100,a有自己的地址&ap是一个变量名,类型是int*,值是0xb原创 2012-10-21 21:17:54 · 2726 阅读 · 1 评论 -
Python之美[从菜鸟到高手]--一步一步动手给Python写扩展(异常处理和引用计数)
我们将继续一步一步动手给Python写扩展,通过上一篇我们学习了如何写扩展,本篇将介绍一些高级话题,如异常,引用计数问题等。强烈建议先看上一篇,Python之美[从菜鸟到高手]--一步一步动手给Python写扩展(爱之初体验)的基础知识。一:扩展中的异常处理 高级语言如C++,Java等都有完善的异常控制,Python也不例外。但与C++不同的是,写C++你可以完全抛弃异常处原创 2013-09-15 23:08:33 · 9882 阅读 · 0 评论 -
[Learning Cython Programming]勘误表
[Learning Cython Programming]勘误表后期增补,发现童鞋可留言1. 第11页 gcc -g -O2 -fpic -c mycodecpy.c -o mycodecpy `python-config --cflags` 应改为:gcc -g -O2 -fpic -c mycodecpy.c -omycodecpy.o `python原创 2014-03-28 02:05:14 · 1982 阅读 · 0 评论 -
[学习cython编程] Cython Won't Bite
我的前言: 前些日子在研究gevent的时候,发现它的core模块,即事件驱动是libevent的python扩展(pyevent),而我发现了.pyx的后缀名,google一番才知道那是cython的语法,基本上是python和c/c++混编,可以很轻松的使用c中已有的库,突然发现世界如此美好,用c写python模块相当的类,还需要注意引用等问题,但用cython这些都不是问题翻译 2014-03-28 03:08:49 · 3842 阅读 · 0 评论 -
[学习Cython编程]C中使用Python标准库(urllib,logging)
Python的库非常丰富,如果能在C中使用Python的一些库,无疑是很让人兴奋的,下面我们就将在C中使用Pyhton的urllib模块和logging模块。在C中调用Python需要包含整个Python的运行时库,链接模型如下:在C/C++中嵌入Python代码是非常简单的,下面是代码模板:#include int main(int argc,char** argv){ Py_Set原创 2014-04-07 19:23:23 · 4244 阅读 · 0 评论 -
[学习Cython编程]Cython编程入门
本文主要以[Learning Cython Programming]一书中的案列和我们自己编写的简单程序来学习Cython。一:Python调用C函数mycode.c文件#include int myfunc (int x, int y){ printf ("look we are within your c code!!\n"); return x + y;}m原创 2014-04-02 01:11:08 · 4192 阅读 · 0 评论 -
Linux/Unix系统编程手册--SOCKET章节读书笔记
SOCKET章节读书笔记强烈推荐Linux/Unix系统编程手册,号称超越APUE的神书。backlog含义#include <sys/socket.h>int listen(int socketfd, int backlog)backlog参数限制未决连接(未accept)的数量,在这个数量之内,connect会立刻成功。 Linux上上限为128,定义在udp已连接socketudp soc原创 2015-07-21 19:19:45 · 5814 阅读 · 0 评论 -
责任链模式
最近打算学习设计模式,刚开始总觉得有点难,貌似挺难想到的。于是本想从网上找C++设计模式视频,可是很失望的没找到。。。。很不情愿的看了一集马士兵的Java设计模式,讲的挺好,就是废话有点多,还有Java没学过。。。。于是听了一下,顺便用C++实现一下。标准的责任链模式类图如下,还是看一下把一:下面实现的是一个过滤器,比如,当你发贴时,需要检测内容的安全性,如有没有敏感词原创 2012-08-30 01:36:03 · 2686 阅读 · 0 评论 -
C语言计算任意两日期之间天数
今天复习了会Program in c,有道题目计算任意两个日期之间的天数:想了好久,最后写了一个很挫的程序.....#include struct date{ int year; int month; int day;};int main(void){ int isPrime(int year); int dateDiff(struct date mindate,原创 2012-05-22 22:24:06 · 41188 阅读 · 16 评论 -
unix文件系统模拟-操作系统课程设计
本周进行操作系统课程设计,在很多的题目中选了个unix文件系统模拟,主要就是操作结构与文件。为了方便,文件系统结构如下:Super block -- Block bitmap -- Inode bitmap -- Inode table -- Block zone其中:Super block: 存储基本信息Block bitmap:块分配情况Inode bitma原创 2012-06-21 20:14:09 · 8112 阅读 · 3 评论 -
多线程并发服务器编程
<!--@page {margin-left:1.25in; margin-right:1.25in; margin-top:0.59in; margin-bottom:0.69in}h1 {margin-top:0.24in; margin-bottom:0.23in; line-height:200%; page-break-inside:avoid}原创 2011-12-12 09:47:45 · 14118 阅读 · 1 评论 -
UDP服务器端和客户端程序设计
实验三 UDP服务器端程序设计一、实验目的学习和掌握Linux下的UDP服务器基本原理和基本编程方法,体会与TCP的区别,TCP编程:http://blog.csdn.net/yueguanghaidao/article/details/7035248二、实验平台ubuntu-8.04操作系统三、实验内容编写Linux下UDP服务器套接字程序,服务器接收客户端发送的信息并显原创 2011-12-09 10:44:29 · 95525 阅读 · 9 评论 -
TCP服务器端和客户端程序设计
一、实验目的学习和掌握Linux下的TCP服务器基本原理和基本编程方法,体会TCP与UDP编程的不同,UDP编程:http://blog.csdn.net/yueguanghaidao/article/details/7055985二、实验平台Linux操作系统三、实验内容编写Linux下TCP服务器套接字程序,程序运行时服务器等待客户的连接,一旦连接成功,则显示客户的IP地址原创 2011-12-02 17:40:59 · 108441 阅读 · 13 评论 -
I/O多路复用服务器编程
<!--@page {margin-left:1.25in; margin-right:1.25in; margin-top:0.59in; margin-bottom:0.69in}h1 {margin-top:0.24in; margin-bottom:0.23in; line-height:200%; page-break-inside:avoid}原创 2011-12-13 19:46:56 · 4321 阅读 · 1 评论 -
多进程并发服务器编程
<!--@page {margin-left:1.25in; margin-right:1.25in; margin-top:0.59in; margin-bottom:0.69in}h1 {margin-top:0.24in; margin-bottom:0.23in; line-height:200%; page-break-inside:avoid}原创 2011-12-10 22:27:11 · 16276 阅读 · 2 评论 -
名字与IP地址转换编程
名字与IP地址转换编程一、实验目的理解名字与IP地址的转换函数,实现主机名与IP地址之间的转换。学习和掌握Linux下的gethostbyname()和gethostbyaddr()函数基本原理和基本编程方法。二、实验平台ubuntu-8.04操作系统三、实验内容1、利用gethostbyname()函数编程实现名字解析,将主机名转换成相应IP地址。2、利用gethos原创 2011-12-09 23:11:54 · 4664 阅读 · 0 评论 -
用C编写的记事本
最近想好好研究C,于是便拿记事本这个小程序练练手。自己从网上找了一个挺不错的,就从这个开始学习吧。。。。一:代码先建立一文件夹->方便管理与查看拿我来说,在d盘根目录下新建note文件夹1.新建一note.rc资源文件,代码如下。#include "sample.h"A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "sampl原创 2011-11-08 18:30:19 · 12559 阅读 · 1 评论 -
C语言中,你不得不知的位运算符特性
我突然问你,-1用二进制如何表示?你最快多久能给我答案????,-1全是1啊二进制如何表示负数最左一位表示正负----->1为负,0为正将-5用二进制表示:好的算法:(1)先加1,得-4(2)求绝对值,得4(3)二进制表示:00000100(4)求补: 11111011以前我都是这么算的:-5->10000101求补->11111010加1 ->1原创 2012-05-23 23:41:58 · 2263 阅读 · 1 评论 -
C语言实现MAC帧的封装与解封装
这周做计算机网络课程设计,在几个题目中选了个MAC帧的封装.首先看最后结果:这里有个bug,不知道为什么帧前导码和帧定界符前多了FFFFFF,我自己没搞懂???程序如下:/*目标:封装1.将inputFile文件中的数据封装成MAC帧,封装好的MAC帧写入outputFile文件中.2.如果数据长度小于46字节,则补全到46字节3.如果数据长度大于原创 2012-06-14 16:36:05 · 7444 阅读 · 4 评论 -
C链表和文件操作实战--图书管理系统
这个貌似是我们大一的C语言课程设计,当时是从网上下的代码,然后修改了一下.现在想想好惭愧,哎我好想重新开始,以前自己的确失去了好多东西,希望今后的自己好好......时间过的真快,现在都大三了,马上也要滚蛋了,再滚蛋之前好好修炼内功.于是我又重新拾起了久违的C语言,用了几天时间认真看完了Programming in c,个人觉得这本书讲得真好,收益亮多.回想起大一学的C语言,我们用的教材是原创 2012-05-26 19:52:18 · 23496 阅读 · 13 评论 -
C语言开发Linux下web服务器(支持GET/POST,SSL,目录显示等)
这个主要是在CSAPP基础上做的,添加了POST,SSL,目录显示等功能。一、 实现功能:1. 支持GET/POST方法2. 支持SSL安全连接即HTTPS3. 支持CGI4. 基于IP地址和掩码的认证5. 目录显示6. 日志功能7. 错误提示页面源代码下载地址:点击打开链接二、设计原理首先介绍一些HTTP协议基本知识。#1.GET/PO原创 2012-12-29 17:10:22 · 36374 阅读 · 36 评论