C/C++
julong2011
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅谈C中的malloc和free
在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助! ...原创 2010-09-03 19:37:48 · 119 阅读 · 0 评论 -
零拷贝与 sendfile
最近在搞zerocopy的东西,看到了这篇文章,拷过来备用!转自:http://www.groad.net/bbs/simple/?t2276.html 本文整理来自:http://www.linuxjournal.com/article/6345?page=0,0一、什么是“零拷贝”零拷贝(zero-copy)基本思想是:数据报从网络设备到用户程序空间传递的过程中,减少数据拷...原创 2010-10-19 08:47:21 · 366 阅读 · 0 评论 -
sendfile() -- 通过 socket 拷贝文件
原型:#include <sys/sendfile.h>ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count); 说明:第 1 个参数 out_fd,在 2.6 内核里,必须指向一个 socket 。第 2 个参数 in_fd,是一个要拷贝文件的文件描述服。第 3 个参数 offs...原创 2010-10-19 08:53:23 · 337 阅读 · 0 评论 -
高速网络环境下基于零拷贝的报文捕获机制
参看:http://www.linuxjournal.com/article/6345http://www.ibm.com/developerworks/cn/java/j-zerocopy/index.htmlhttp://blog.chinaunix.net/u/5251/showart_411109.html1.传统的报文捕获实现过程1.1 协议栈运行机制分析当操作系...原创 2010-10-19 09:07:02 · 510 阅读 · 0 评论 -
size_t和ssize_t类型
size_t 是为了方便系统之间的移植而定义的在32位系统上定义为 unsigned int在64位系统上定义为 unsigned longsize_t 一般用来表示一种计数,比如有多少东西被拷贝等,设计 size_t 就是为了适应多个平台的需要。ssize_t 就是 signed int /long...原创 2010-10-22 10:11:10 · 208 阅读 · 0 评论 -
[转]通过例子学习Lua
据说本文作者是OGDEV的HACK达人通过例子学习Lua(1) ---- Hello World1.前言游戏中少不了用到脚本语言. Lua是一种和C/C++结合非常紧密的脚本语言,效率极高。一般是对时间要求比较高的地方用C++写,而经常需要改动的地方用Lua写。偶最近在学习Lua, 所以写出心得和大家共享. Lua是一种完全免费的脚本语言,它的官方网站在http://www.l...原创 2010-11-17 21:25:18 · 240 阅读 · 0 评论 -
C语言实现修改IE浏览器的代理设置
写了一个用C语言实现修改IE浏览器代理设置的例子:/* * Proxy.c * * Created on: 2010-11-23 * Author: Jackie */ #include <stdio.h> #include <windows.h> #include <conio.h>...2010-11-24 17:18:46 · 1016 阅读 · 0 评论 -
MAC文本格式地址to网络字节序
#include <sys/types.h>#include <netinet/in.h>#include <stdio.h> /* * Check whether "cp" is a valid ascii representation * of an MAC address and convert to a ...原创 2010-12-01 16:38:43 · 577 阅读 · 0 评论 -
自己用libpcap来抓包
#define APP_NAME "sniffex"#define APP_DESC "Sniffer example using libpcap"#define APP_COPYRIGHT "Copyright (c) 2005"#define APP_DISCLAIMER "THERE IS ABSOLUTELY NO WARRANTY...原创 2010-12-01 16:40:12 · 292 阅读 · 0 评论 -
C++队列实现和队列简介
队列简介:队列(Queue)是一种数据结构,可以在队列的一端插入元素而在队列的另一端删除元素。 ( 1 )允许删除的一端称为 队头( Front ) 。 ( 2 )允许插入的一端称为 队尾( Rear ) 。 ( 3 )当队列中没有元素时称为 空队列 。 ( 4 )队列亦称作先进先出( First In First Out )的线性表,简称为 FIFO 表 。队列的...原创 2010-10-09 11:04:01 · 165 阅读 · 0 评论 -
定长队列写入文件并读取
#include "stdio.h" #include "stdlib.h" #include "string.h" #define SIZE 5; #define LEN sizeof(struct node) typedef struct node { char name[20]; struct node *next; } nodes; n...原创 2010-10-09 10:57:57 · 266 阅读 · 0 评论 -
循环队列
相信绝大多数都学习过《数据结构》这门课程,而对这门课程里最熟悉的应该是堆栈和队列。本人前段时间买了一本有关算法(C语言实现)的书,发现其中对循环队列这一结构的算法存在漏洞,故写此文与大家交流探讨。首先提一下循环队列的概念:队头指针head,队尾指针tail。很显然,当队列满后,即便全部元素都出队,队列还是满的状态。这种情况就叫做“假溢出”,即数组中明明有可用空间,但却无法使用。...原创 2010-10-09 10:55:32 · 159 阅读 · 0 评论 -
抓包程序的包存储队列
typedef struct _Node{ int data_len; // 存储在节点中的数据长度 char *data; // 存储在节点中的数据 struct _Node *next; // 队列中的下一个节点地址}NODE; typedef struct _Queue{ NODE...原创 2010-09-17 09:08:26 · 157 阅读 · 0 评论 -
编写守护进程
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <signal.h>#include <syslog.h>void main(int argc, char ** argv){t...原创 2010-09-17 10:43:38 · 130 阅读 · 0 评论 -
typedef 的用法
用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR; PCHAR pa, pb; 用途二...原创 2010-09-25 20:43:43 · 115 阅读 · 0 评论 -
Linux Daemon In C
This is a template for a Linux daemon written in C. It includes:Command-line argument handling via getoptSignal HandlingSyslog output and filtering via setlogmaskForking of processChangi...原创 2010-09-26 08:22:29 · 151 阅读 · 0 评论 -
给线程变量pthread_t *thread动态分配空间
线程的创建是用下面的几个函数来实现的.#include <pthread.h> int pthread_create(pthread_t *thread,pthread_attr_t *attr, void *(*start_routine)(void *),void *arg); void ...原创 2010-09-26 08:36:08 · 510 阅读 · 0 评论 -
extern用法详解
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案与分析: 1)、...原创 2010-09-27 08:33:05 · 181 阅读 · 0 评论 -
stdarg.h
stdarg.h是C语言中C标准函数库的头文件,stdarg是由stdandard(标准) arguments(参数)简化而来,主要目的为让函数能够接收不定量参数。 C++的cstdarg头文件中也提供这样的机能;虽然与C的头文件是兼容的,但是也有冲突存在。不定参数函数(Variadic functions)是stdarg.h内容典型的应用,虽然也可以使用在其他由不定参数函数调用的函数(...原创 2010-09-27 09:12:19 · 205 阅读 · 0 评论 -
自动、静态、 寄存器、易失变量的区别
自动变量 什么是自动变量呢?自动变量就是指在函数内部定义使用的变量。他只是允许在定义他的函数内部使用它。在函数外的其他任何地方都不能使用的变量。自动变量是局部变量,即它的区域性是在定义他的函数内部有效。当然这说明自动变量也没有链接性,因为它也不允许其他的文件访问他。由于自动变量在定义他的函数的外面的任何地方都是不可见的,所以允许我们在这个函数外的其他地方或者是其他的函数内部定义同名的变量,...原创 2010-09-30 08:08:38 · 144 阅读 · 0 评论 -
ARP头
ifndef _NET_IF_ARP_H_ #define _NET_IF_ARP_H_/* * 地址解释协议. * * 查看 RFC 826 对该协议的描述. ARP 包长度是变化的 * 头部(arphdr)结构定义了固定长度部分. */ struct arphdr { u_short ar_hrd; /* 格式化的硬件地址 */ #de...原创 2010-12-01 17:20:43 · 225 阅读 · 0 评论
分享