- 博客(31)
- 资源 (11)
- 收藏
- 关注
转载 C语言中printf格式化输出函数
用 法: int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]type 规定数据输出方式,具体如下: 1.type 含义如下: d 有符号10进制整数 i 有符号10进制整数
2013-04-29 18:25:39 864
转载 如何自己编写Makefile
相信很多朋友都有过这样的经历,看着开源项目中好几页的makefile文件,不知所云。在日常学习和工作中,也有意无意的去回避makefile,能改就不写,能用ide就用ide。其实makefile并没有想象的那么难写,只要你明白了其中的原理,自己实践几次。你也可以自己写makefile,让别人对你头来羡慕的目光。 下面本人介绍一下自己的学习成果,初学阶段,欢迎大家多多指正。 简单
2013-04-29 16:44:43 446
转载 Linux 线程模型的比较:LinuxThreads 和 NPTL
当 Linux 最初开发时,在内核中并不能真正支持线程。但是它的确可以通过 clone() 系统调用将进程作为可调度的实体。这个调用创建了调用进程(calling process)的一个拷贝,这个拷贝与调用进程共享相同的地址空间。LinuxThreads 项目使用这个调用来完全在用户空间模拟对线程的支持。不幸的是,这种方法有一些缺点,尤其是在信号处理、调度和进程间同步原语方面都存在问题。另外,这个
2013-04-29 11:11:21 587
转载 Linux 多线程应用中如何编写安全的信号处理函数
Linux 多线程应用中编写安全的信号处理函数在开发多线程应用时,开发人员一般都会考虑线程安全,会使用 pthread_mutex 去保护全局变量。如果应用中使用了信号,而且信号的产生不是因为程序运行出错,而是程序逻辑需要,譬如 SIGUSR1、SIGRTMIN 等,信号在被处理后应用程序还将正常运行。在编写这类信号处理函数时,应用层面的开发人员却往往忽略了信号处理函数执行的上下文背景,没
2013-04-29 11:10:35 631
转载 Linux多线程中使用信号
在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别,可以说是完全不同。在进程环境中,对信号的处理是,先注册信号处理函数,当信号异步发生时,调用处理函数来处理信号。它完全是异步的(我们完全不知到信号会在进程的那个执行点到来!)。然而信号处理函数的实现,有着许多的限制;比如有一些函数不能在信号处理函数中调用;再比如一些函数read、recv等调用时会被异步的信号给中断(inter
2013-04-29 11:09:32 677
转载 文档型数据库设计模式-如何存储树形数据
在数据库中存储树形结构的数据,这是一个非常普遍的需求,典型的比如论坛系统的版块关系。在传统的关系型数据库中,就已经产生了各种解决方案。此文以存储树形结构数据为需求,分别描述了利用关系型数据库和文档型数据库作为存储的几种设计模式。A.关系型数据库设计模式1idnameparent_id1ANULL
2013-04-28 11:02:56 687
转载 TinyXML解析xml文档
l TinyXML简介TinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧玲珑,非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作,尤其适用于游戏开发,在Nebula2,CEGUI等开源项目中都有使用。 名称访问接口是否支持验证备注ExpatSAX/
2013-04-28 09:52:20 626
转载 VI常用命令
VI常用命令_______________________________________________________一般模式 光标移动__________________________________________________________h 或 向左方向键 光
2013-04-28 09:50:54 582
转载 read()/write()/pread()/pwrite()等等
在Linux和UNIX中有很多的输入输出函数,有时真是让想跟它攀点关系的菜鸟们束手无策。先来看看都有哪些函数,通过解析与总结,看看能不能让大家能这些函数有个理性的认识,哦,原来是这么回事,也就算我没白花这份闲。内核文件I/O->标准库I/O->高级I/O->IPC中1. read()/write();2. pread()/pwrite();3. getc()/put
2013-04-28 09:49:37 1724
转载 网络编程指南--网络套接口(Internet Sockets)
介绍Hey! Socket 编程让你沮丧吗?从 man pages 中很难得到有用的信息吗?你想 跟上时代去做一做 Internet 程序,但是为你在调用 connect() 前的 bind() 的结构而愁眉不展?…好了,我现在已经来了,我将和所有人共享我的知识了。如果你了解 C 语言并想穿过 网络编程的沼泽,那么你来对地方了。读者这个文档是写成一个指南,而不是参考书。
2013-04-28 09:48:15 1715
原创 ubuntu 开启ssh服务
SSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-serversudo apt-get install openssh-server
2013-04-28 09:45:41 501
原创 vim命令添加版
读本文之前请注意:1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是现在基本上都是用vim了。2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程。3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工作的人。熟练
2013-04-28 09:44:17 652
转载 wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
wireshark是一款抓包软件,比较易用,在平常可以利用它抓包,分析协议或者监控网络,是一个比较好的工具,因为最近在研究这个,所以就写一下教程,方便大家学习。 这里先说Wireshark的启动界面和抓包界面 启动界面: 抓包界面的启动是按file下的按钮之后会出现
2013-04-27 23:25:10 804
原创 vim+cscope
C语言如下做:>sudo apt-get install cscope然后到你的项目根目录下。>find . -name '*.h' -o -name '*.c' >cscope.files>cscope -bkq -i cscope.files然后会生成cscope.out文件和cscope.files文件。OK了!使用:>cd [项目根目录]>cscope
2013-04-27 23:23:46 520
原创 Linux文件查找命令find,xargs详述
版权声明本文是zhyfly兄贴在LinuxSir.Org 的一个帖子而整理出来的,如果您对版权有疑问,请在本帖后面跟帖。谢谢;本文的HTML版本由北南南北整理;修改了整篇文档的全角及说明文字中的单词中每个字母空格的问题;为标题加了编号,方便大家阅读;前言:关于find命令由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中
2013-04-27 23:22:53 479
原创 select poll epoll联系区别
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);int poll(struct pollfd *fds, nfds_t nfds, int timeout);int epoll_wait(int epfd, struct epoll_event
2013-04-27 23:21:39 654
原创 select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: #include #include int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *t
2013-04-27 23:20:33 441
原创 GCC的各种选项
-c只生成目标文件(.o),不连接。% gcc -c main.c% g++ -c reciprocal.cpp-I可以指定头文件的目录% g++ -c -I ../include reciprocal.cpp-D设置宏定义% g++ -c -D NDEBUG reciprocal.cpp% g++ -c -D NDEBUG=3 reciprocal.cpp
2013-04-27 23:19:14 1046
原创 ubuntu 10.10停止支持sudo apt-get install
把源改成这个老源:sudo gedit /etc/apt/sources.list粘贴完之后再sudo apt-get update#remastersys for backup installed systemdeb http://www.remastersys.com/ubuntu maverick maindeb http://old-releases.ubuntu.com
2013-04-27 23:17:57 704
原创 C/C++内存管理详解
程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般 教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。1、内存分配方式内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2
2013-04-27 23:17:05 527
原创 Linux C语言头文件搜索路径
对所有用户有效在/etc/profile增加以下内容。只对当前用户有效在Home目录下的.bashrc或.profile里增加内容。#在PATH中找到可执行文件程序的路径。export PATH=$PATH:$HOME/bin#gcc找到头文件的路径C_INCLUDE_PATH=/usr/include/libxml2:/MyLibexport C_INCLUDE_PA
2013-04-27 23:16:20 654
原创 时间复杂度算法主定理
主要记住nlogba和f(n)的关系,即可,大于为情况1,等于为情况2,小于为情况3.T(n)=aT(n/b)+f(n)1) e>0, F(n)=O(nlogba-e),复杂度为T(n)=theta(nlogba):例如T(n)=9T(n/3)+ n, theta(n2)2) f(n)=theta(nlogba),复杂度为T(n)=theta(nl
2013-04-27 23:15:31 1135
原创 带环单链表求中点
最近一直在无脑敲代码,结果今天下午被一个准备各种面试题的同学问了一个带环单链表的问题,发现最近的智商真心不够用,想了稍长时间,最后算是想明白了。因为最后想到头大的时候,百度了一下,所以只好选择分类为转载,下面就建立在自己思考的基础上,讲解一下,如又不对的地方,望指正。首先,对于一个n节点的单链环,如果给定一个开始节点n0,然后用a,b两个指针,分别以1和2的步长遍历,那么在a环
2013-04-27 23:14:03 609
原创 三种发送UDP包的函数
send()的例子:#include#include#includevoid Recv(){struct sockaddr_in serv_addr;int sock_fd;char line[15] = "Hello world!";int size = 13;serv_addr.sin_family = AF_INET;serv_addr.sin_addr.s_
2013-04-27 23:13:19 2057
原创 小小线程池
线程池:一般一个简单线程池至少包含下列组成部分。1.线程池管理器(ThreadPoolManager):创建线程池,销毁线程池,添加新任务。2.工作线程(WorkThread): 线程池中线程3.任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。任务接口是为所有任务提供统一的接口,以便工作线程处理。任务接口主要规定了任务的入口,任务执行完
2013-04-27 23:12:10 474
原创 比较全面的gdb调试命令
用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更
2013-04-27 23:11:29 543
原创 二分查找
int Find(int arr[], int key,int length){ assert(arr!=NULL&&length>0); int low=0,high=length,mid; while(low<=high) { mid=(low+high)/2; if(arr[mid]==key) return mid;
2013-04-27 23:10:22 542
原创 【面试中的】C语言实现字符串函数
C语言字符串函数实现源码汇总2008年05月18日 星期日 16:54 #include char * ___strtok = NULL; char * strcpy(char * dest,const char *src) { char *tmp = dest; while ((*dest++ = *src++) != '\0'
2013-04-27 23:09:25 724
转载 Linux 信号signal处理机制
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出一
2013-04-27 18:47:18 422
原创 Linux X86获取汇编指令码
1,用户态程序gcc test.c则生成a.out2,调用命令objdump -d a.out则显示反汇编指令,即可得到相应的汇编指令码
2013-04-27 16:49:12 730
Hplus_v4.1.0
2016-10-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人