- 博客(39)
- 资源 (5)
- 收藏
- 关注
转载 epoll原理
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
2013-05-07 16:13:03
847
转载 [Linux]GNU自动化工具(automake工具链)
Filename : [Linux]GNU 自动化工具( automake 工具链)Version : V1.0Date : 12/01/2009Author : S.C.Leon =====================================================================GNU 自动化工具( automake 工具链)一、 M
2013-04-25 19:23:24
1390
转载 linux命令之-----------cut命令
1 一两句话描述一下cut命令吧!正如其名,cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut是以每一行为一个处理对象的,这种机制和sed是一样的。(关于sed的入门文章将在近期发布)2 cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢?cut命令主要是接受三个定位方法:第一,字节(bytes),用选项-b
2013-04-25 18:33:03
765
转载 squidclient 使用方法
一. squidclient 的使用查看帮助1squidclient -h2squidclient -p 80 mgr:3 4-h host Retrieve URL from cache on hostname. Defaul
2013-04-22 17:28:53
5055
转载 wget 用法
用wget下载一个目录,例如网站的 yourdir wget -U “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)” -r -p -k -np-Pmydir -nc -o down.loghttp://www.yourdomain.com/yourdir/index.html 如果要想下载整个网站,最好去除-np
2013-04-12 14:02:35
829
转载 Curl用法
curl用法示例(网络转载)1) curl http://www.yahoo.com 回车之后,www.yahoo.com的html就稀里哗啦地显示在屏幕上了~~~~~2) 用curl的内置option,存下http的结果,用这个option: -o curl -o page.html http://www.yahoo.com 可以看到屏幕上出现一
2013-04-12 11:39:53
1487
转载 VimTutor中文版
文章来源:http://waterxfire.blog.hexun.com/4106986_d.html================================================================================ 欢 迎 阅 读 《 V I M 教 程 》 —— 版本 1.5
2013-04-12 08:30:11
9255
转载 Nginx配置文件nginx.conf中文详解
#定义Nginx运行的用户和用户组user www www;#nginx进程数,建议设置为等于CPU总核心数。worker_processes 8;#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log info;#进程文件
2013-04-10 10:15:52
723
转载 GCC 参数详解
[介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参数详解] -x l
2013-02-19 17:52:20
673
转载 判断两个单链表是否相交(链表中可能有环的情况下)
原文链接:http://www.cppblog.com/zengwei0771/articles/172700.html题目描述:判断两个单链表是否相交,如果相交,给出相交的第一个点(链表中可能有环的情况下)这里是①判断单链表是否有环,并求出环的入口点;②判断两个链表是否相交(链表中无环),并求出相交节点 的文章 http://www.cppblog.com/humanchao/a
2013-02-18 11:23:05
2837
转载 判断链表是否有环及两链表是否相交
原文链接:http://blog.csdn.net/kevinzhangyang/article/details/6637503单向链表是最常用的数据结构之一,因此总结其常见的问题及其解决方案是很有意义的。 问题1:如何判断一个单向链表是否有环?如果有,如何找到其入口节点的指针? 算法思想:用两个指针p1,p2同时指向链表的头部,
2013-02-18 10:49:53
844
转载 用GDB查看core dump
原文链接:http://lanka83.blog.163.com/blog/static/32637615200801793020182/1. 前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的.但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变得困难起来.2. gdb:有一种办法是,
2013-01-30 10:07:01
830
原创 由ifstream想到的
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;
2012-12-14 16:16:27
736
转载 Tortoise SVN使用方法,简易图解
Tortoise SVN使用方法,简易图解 原文链接: http://blog.csdn.net/dily3825002/article/details/6717076 刚到公司实习,为了版本控制,我公司使用SVN控制版本,在此记下SVN使用方法,仅供参考! 废话少说,上图!----------------------------------
2012-12-12 14:25:42
642
转载 VS2010编译安装boost
1.下载安装包boost 1_45_0 http://sourceforge.net/projects/boost/files/boost/1.45.0/ 选择下载 windows 或 unix 版本2.解压缩到d:\boost目录下3.编译bjam (1)从vs2010的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“Mic
2012-11-28 12:13:20
633
原创 部分C语言题目
1、下列描述不正确的是_______D________A.int **a[2][2]定义的是指向指针的指针数组B.定义int **a[2][2],在32位系统下,a所用的内存空间为16C. int **a[2][2]={0}D.int **a[2][3]={{0,0},{0,0},{0,0}}ps:我居然认为B不对,D对,2行3列我都不知道是啥。 2、有以下程序Am
2012-09-21 10:03:22
929
转载 TCP中的滑动窗口
.滑动窗口滑动窗口本质上是描述接受方的TCP数据报缓冲区大小的数据,发送方根据这个数据来计算自己最多能发送多长的数据。如果发送方收到接受方的窗口大小 为0的TCP数据报,那么发送方将停止发送数据,等到接受方发送窗口大小不为0的数据报的到来。书中的P211和P212很好的解释了这一点。关于滑动窗口协议,书上还介绍了三个术语,分别是:窗口合拢:当窗口从左边向右边靠近的时候,这种现象发生
2012-09-04 16:45:50
672
转载 TCP传输层
你所不知道的传输层题记:23页的文档上,满满当当的写满了笔记,纸质的东西,始终害怕丢失,还是选择把它总结到博客上来。PS.老规矩,列出可能遇到的20个问题,如果您是都能回答的高手,请您绕道,我是小菜,只做自己的学习笔记。1. 传输层的主要功能是什么?2. 传输层如何区分不同应用程序的数据流?3. 传输层有哪些协议?4. 什么是UDP协议?5.
2012-09-04 16:44:51
927
原创 进程间通信
Linux常用的进程间通信方式有:1、管道(pipe)和有名管道(FIFO)2、信号(signal)3、消息队列4、共享内存5、信号量6、套接字 ***********************************管道通信实例************************************pipe只能用于父进程和子进程之间通信。 #includ
2012-09-01 20:55:16
1183
原创 linux 多线程编程
/***创建多个线程*/#include#include#includevoid *myThread1(void){ int i; for (i=0; i<3; i++) { printf("This is the 1st pthread,created by fang.\n"); sleep(1);//Let this t
2012-08-31 20:38:48
666
原创 TCP并发服务器设计
TCP并发服务器是通过创建子进程来处理不同客户端的请求实现的server.c/*** TCP并发服务器*/#include #include #include #include #include #include #include #include #define portnumber 3333int main( int argc, cha
2012-08-31 20:37:31
3107
原创 网络编程基础
TCP和UDP是传输层协议。TCP是保证传输的面向连接的协议。UDP是无连接协议,不能保证消息传送到目的地。 当服务器和应用程序需要和其他进程通信是就会创建套接口(socket)。 通信域(domain)用来说明socket通信协议的语义。每个域都指定了一套协议、控制和解释名字的规则,以及套接口地址的格式。其中,对于Internet域来说,套接口地址的格式是一个IP地址
2012-08-29 11:20:53
525
原创 基于TCP的socket编程设计
server端需要做的工作(使用系统调用函数): (1)创建一个socket; 用socket()(2)绑定IP地址、端口等信息到socket上; 用bind()(3)设置允许的最大连接数 用listen()
2012-08-29 11:09:13
731
转载 socket编程头文件和常用函数
sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供socket等待测试机制的函数其他在网络程序中常见的头文件
2012-08-29 09:48:14
1228
转载 sizeof和strlen
先看看sizeof()一、sizeof的概念sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。其实可以简单的理解sizeof是征对"类型"的。二、sizeof的使用方法 1、用于数据类型 sizeof使用形式
2012-08-16 08:57:04
649
原创 linux shell获取路径的文件名及其目录名
完整的文件名最长可以到达4096个字符。那么,怎么知道哪个是文件名?哪个是目录名?就是利用斜线(/)来分辨。其实,获取文件名或者是目录名,一般的用途是在写程序时进行判断。 下面我们简单以几个范例谈一谈basename与dirname的用途。 [root@linux ~]# basename /etc/sysconfig/netwo输出:network
2012-08-12 21:47:29
14595
原创 linux 自动格式化创建多个.txt文件
格式化创建多个文件名01.txt 02.txt 03.txt...for(i=0;i <100;i++){ char sz[128]; sprintf(sz , "%02d.txt",i); fopen(sz,"w");}
2012-08-12 21:42:27
2866
原创 linux下 lame软件的使用
Lame为一款mp3编码软件,可以实现.wav文件转换为.mp3格式的文件。该软件支持编解码。 % lame [参数] 输入文件名>[输出文件名>]如需查询更多参数,可输入下列命令:# lame --longhelp=======================================================================固定
2012-08-12 21:38:44
3011
原创 Linux下 C语言实现遍历指定目录下指定格式的文件
/***path为指定的目录路径,遍历该目录下的文件,找出指定格式(.mp3)的文件**并将文件名分组分别写入.txt文件,方便多进程处理*/#define SINGLENUM 10int searchdir( char *path ){ unsigned int count=0; //临时计数,[0,SINGLENUM] char txtname[128];
2012-08-12 21:06:36
9986
1
原创 linux shell和c程序之间互相传递数据
有时候可能需要C程序和shell脚本之间互相传递数据,下面实现了两者之间数据的传递操作。用popen实现了shell的输出参数想C程序的传递。int getcount(){ FILE *fp; int total=0; char buff[MAXLINE]={0}; char command[]={"./count"}; //count为已写脚本 fp=
2012-08-12 20:51:50
4236
原创 Linux 进程创建及多进程
说到进程,首先要明确的一个概念就是什么是进程,进程是“a program in execution”。一个进程由如下元素组成:–程序的上下文(context),它是程序当前执行的状态–程序的当前执行目录–程序访问的文件和目录–程序的信任状态或者说访问权限,比特它的文件模式和所有权–内存和其他分配给进程的系统资源本文讨论创建进程最近本人写了一个关于进程操作的程序,之前对进
2012-08-12 20:32:50
30244
原创 C语言中的volatile关键字
C语言中的volatile是什么意思?volatile可以翻译为:易变的如:u8 a,b;{ a=2; b=a;}这时编器会把它改成:u8 a,b;{ a=2; b=2;}当运行到中间位置,中断把a改了,结果就是错的。volatile就为了解决这个问题出现的,它会让编译器更老实!****************
2012-07-24 16:20:00
931
原创 嵌入式产品开发流程
嵌入式产品开发流程一般分为以下几个部分:1、 硬件开发2、 Bootloader移植3、 Linux内核移植4、 根文件系统制作(供内核启动使用)5、 业务相关的应用程序和驱动程序的开发6、 功能测试、性能测试、系统集成测试、系统设备、发布 光有内核,系统是启动不起来的。3和4两个阶段称为最小系统。
2012-07-19 18:31:47
902
原创 Bootloader的概念
简单地说,bootloader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便于最终调用操作系统做好准备。Bootloader的启动流程,一般分为两个阶段:Stage1:硬件设备初始化(CPU内部的一些硬件)为加载bootloader的stage2准备RAM空间拷贝bootloader的stage2到
2012-07-19 18:29:18
582
原创 UBOOT启动流程分析
UBOOT特点:用于多种CPU用于多种操作系统查看一下board/smdk2410/u-boot.lds这个链接脚本,可以知道目标程序的各部分链接顺序 OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm", "elf32-littlearm")/*OUTPUT_FORMAT("elf32-arm","elf32-ar
2012-07-19 18:26:51
1013
转载 bss,data,text,rodata,堆,栈,常量段
//红色部分为问题部分section 结构SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { contents } >region :phdr =fill...}secname:段名contents:决定哪些内容存放在此段start:本段的连接地址(实际运行地址)AT(
2012-07-19 10:25:09
12472
原创 函数指针
int func(int x); /* 声明一个函数 */int (*f) (int x); /* 声明一个函数指针 */f=func; /* 将func函数的首地址赋给指针f */赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。注2:函数括号中的形参可有可无,视情况而定。UBOOT中go命令的实现:
2012-07-17 19:39:00
648
原创 删除一个字符串的一部分
《C和指针》第6章编程练习:请编写一个函数,删除一个字符串的一部分,函数的原型如下:int del_substr(char *str,char const *substr )函数首先应该判断substr是否出现在str中,如果它并未出现,函数就返回0;如果出现,函数应该把str 中位于该子串后面的所有字符复制到该子串的位置,从而删除这个子串,然后函数返回1。如果substr多次出现在str
2012-07-17 19:35:51
6400
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人