- 博客(52)
- 资源 (6)
- 收藏
- 关注
转载 vim查找/替换字符串
vim查找/替换字符串vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询。 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n,$s/vivian/sk
2014-01-05 13:53:51
981
转载 Linux makefile 教程 非常详细,且易懂
Linux makefile 教程 非常详细,且易懂 最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C
2013-12-22 20:40:26
940
转载 const使用方法探讨
const使用方法探讨关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,现将本人的一些体会总结如下,期望对大家有所帮助:一 const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:int b = 500;const int* a = &b; [1]int const *a = &b; [2]
2013-12-22 15:19:01
846
转载 字节序问题--大端法小端法
字节序问题--大端法小端法分类: ARM 2011-12-29 21:21 4897人阅读 评论(4)收藏 举报byte网络平台freebsdfp存储一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交
2013-12-19 21:06:40
2019
转载 为什么硬链接不能指向目录
linux系统中的硬连接有两个限制:不能跨越文件系统和不允许普通用户对目录作硬连接。至于第一个限制,很好理解,而第二个就不那么好理解了。 我们对任何一个目录用ls -l 命令都可以看到其连接数至少是2,这也说明了系统中是存在硬连接的,而且命令ln -d 也可以让超级用户对目录作硬连接,这些都说明了系统限制对目录进行硬连接只是一个硬性规定,并不是逻辑上不允许或技术上的不可行。那么操作系统为什么要进行
2013-11-29 08:08:24
1493
转载 排序算法的时间复杂度和空间复杂度
常用的内部排序方法有:交换排序(冒泡排序、快速排序)、选择排序(简单选择排序、堆排序)、插入排序(直接插入排序、希尔排序)、归并排序、基数排序(一关键字、多关键字)。一、冒泡排序: 1.基本思想:两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。2.排序过程:设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气
2013-10-20 19:37:31
744
转载 常用的排序算法的时间复杂度和空间复杂度
常用的排序算法的时间复杂度和空间复杂度常用的排序算法的时间复杂度和空间复杂度排序法 最差时间分析平均时间复杂度 稳定度 空间复杂度 冒泡排序O(n2)O(n2)稳定 O(1) 快速排序O(n2)O(n*log2n)不稳定 O(log2n)~O(n)
2013-10-20 19:35:19
906
转载 strstr strlen strcpy函数实现
strstr strlen strcpy函数实现分类: c++语言2013-06-17 13:54 59人阅读 评论(0) 收藏 举报strcpy函数实现strcpy 看似是标准函数库里面最简单的函数了,谁都可以实现这个函数, 但是,并不一定谁都能实现的很好。林锐博士面试微软的时候,就做这个题目。 他也没有把这个题目完全的做对。建议你自己先动手写一个自己
2013-10-20 18:25:44
854
转载 C字符串处理函数的实现
C字符串处理函数的实现C字符串处理函数的实现(Linux)#include char * ___strtok = NULL; char * strcpy(char * dest,const char *src) { char *tmp = dest; while ((*dest++ = *src+
2013-10-20 18:08:11
874
转载 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别
我们先来看内存中的几大区: 内存到底分几个区?下面有几种网上的理解,我整理一下:一: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局
2013-10-20 15:58:52
2121
转载 对内存中堆、栈、静态存储区的理解
堆:由程序员自己分配释放(用malloc和free,或new和delete) ,如果我们不手动释放,那就要到程序结束才释放。如果对分配的空间在不用的时候不释放而一味的分配,那么可能会引起内存泄漏,其容量取决于虚拟内存,较大。 栈:由编译器自动分配释放,其中存放在主调函数中被调函数的下一句代码、函数参数和局部变量,容量有限,较小。 静态存储区:由在编译时由编译器分配,由系统释放,其中存放
2013-10-20 15:57:59
2458
转载 内存空间分几部分:代码段、数据段,栈,堆 (收集整理)
1.函数代码存放在代码段。声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占代码段空间。全局变量或静态变量,放在数据段,局部变量放在栈中,用new产生的对象放在堆中,内存分为4段,栈区,堆区,代码区,全局变量区BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by
2013-10-20 15:56:53
1126
转载 递归与循环的优缺点
递归的话函数调用是有开销的,而且递归的次数受堆栈大小的限制。 以二叉树搜索为例: bool search(btree* p, int v) { if (null == p) return false; if (v == p->v) return true else { if (v v) return search(p->left, v
2013-10-19 17:53:22
7891
转载 从头到尾彻底解析Hash表算法
从头到尾彻底解析Hash表算法发布时间: 2013-10-02 10:26 阅读: 2833 次 推荐: 3 原文链接 [收藏] 作者:July、wuliming、pkuoliver 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。
2013-10-10 17:50:43
984
转载 Socket网络编程常用的结构及函数小结
Socket网络编程常用的结构及函数小结 IP地址的作用是标示计算机的网卡地址,每台计算机都有一个IP地址;端口,是指计算机中为了标示在计算机中访问网络的不同程序而设的编号,并不是网卡接线的端口,而是不同程序的逻辑编号,并不是实际存在的;域名,是用来代替IP地址来标示计算机的一种直观名称,例如百度网站的IP地址是202.108.22.43,这个IP地址没有任何逻辑含义,不便记
2013-10-10 17:42:29
757
转载 Linux下ps命令详解
Linux下ps命令详解 Linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待)2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)5. 停止(进程收到SIGSTOP
2013-09-25 08:15:02
845
转载 malloc和new的区别
malloc和new的区别 malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译
2013-09-24 13:25:45
639
转载 软件开发过程包括哪几个阶段
软件开发过程包括哪几个阶段Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。 IEEE:软件工程是开发、运行、维护和修复软件的系统方法。 Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 软件工程学的内容 软件工程学的主要内容
2013-09-23 22:53:41
12761
转载 C语言实现strlen函数的几种方法
C语言实现strlen函数的几种方法 今天偶然看到了一个实现strlen函数的方法,也实际练习了一下,挺有意义的,其实现的一些思想值得学习,记录一下吧。我这里除了写两个比较巧妙的递归实现之外,也写了另外一种常规的方式。 传说常见的一个笔试题:不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数。函数接口声明如下:int strl
2013-09-23 22:35:32
2169
转载 ASCLL码转换——十进制(Dec)十六进制(Hex)字符(Char)密码转换(zt)
ASCLL码转换——十进制(Dec)十六进制(Hex)字符(Char)密码转换(zt)ASCII是英文American Standard Code for Information Interchange的缩写。ASCII码是目前计算机最通用的编码标准。因为计算机只能接受数字信息,ASCII码将字符作为数字来表示,以便计算机能够接受和处理。比如大写字母M的ASCII码
2013-09-23 21:05:29
8141
转载 sscanf,sscanf_s及其相关用法
sscanf,sscanf_s及其相关用法#include 定义函数 int sscanf (const char *str,const char * format,........);函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。返
2013-09-23 20:16:44
1503
转载 linux下用gcc编译使用了math库函数的程序出错的解决方法
linux下用gcc编译使用了math库函数的程序出错的解决方法症状:在c程序中用到math库函数时,编译成obj后,再生成执行文件时,会遇到类似下面的错误:/tmp/ccalvMPY.o: In function `main':/tmp/ccalvMPY.o(.text+0x40): undefined reference to `pow'原因:因为l
2013-09-23 18:45:53
1825
转载 分析一个互联网产品的思路
在网上看到这段文字觉得启发性很大,特意转载过来激励一下自我!希望看到这篇文章的产品前辈指导一下……作为产品的方便面解决了什么用户的什么需求?方便面解决了宅男快速填饱肚子的需求。产生需求的场合是什么?某天半夜,玩网游,刚和队友杀掉一个终极大Boss,忽然感到饿了,需要吃点东西。产品的主要功能有哪些?撕开袋子,用开水泡3min,达到能吃的状态。技术基础是
2013-09-18 07:56:02
911
转载 kill用法详细解释(特别是信号量9的使用以及理解)
kill用法详细解释(特别是信号量9的使用以及理解)Linux kill命令当需要中断一个前台进程的时候,通常是使用组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死。总之这种情况是经常发生的。Linux进程中的kill命令是通过向进程
2013-09-18 07:44:10
1514
转载 typedef用法总结之续
typedef用法总结之续 刚刚看了一篇也是关于typedef用法的文章,跟先前看的那篇文章内容大同小异,不过有一处让我收获不小,就是在上篇最后那个案例我不理解的地方,这篇文章给了一个很好的答案。以下是文章的部分内容 : 陷阱一: 记住,typedef是定义了一种类型的新别名,不同于宏,它不是简单的字符串替换。比如: 先定义: typedef
2013-09-17 22:18:26
668
转载 关于typedef的用法总结
关于typedef的用法总结 不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的
2013-09-17 22:17:16
801
转载 常见gcc编译警告整理
1、warning: no newline at end of file在文件最后一行加上回车键解释:在《Rationale for the C99 standard》一文中,有C99的相关信息:A backslash immediately before a newline has long been used to continue string literals, as well
2013-09-17 22:00:33
1663
转载 最快线程间数据交换算法,有效避免锁竞争 -- TwoQueues
最快线程间数据交换算法,有效避免锁竞争 -- TwoQueueshan z. 于 星期四, 21/03/2013 - 04:34 提交分类:开源优化安全线程C/C++服务器服务器开发人员处理多线程数据共享问题注意的几个要点:1、锁竞争:尽量减少锁竞争的时间和次数。2、内存:尽量是使用已分配内存,
2013-09-17 16:29:30
939
转载 sprintf,你知道多少?
sprintf,你知道多少?2005-04-07 14:4623056人阅读 评论(9)收藏 举报扩展编译器mfcbyte语言笑话选自《优快云 社区电子杂志——C/C++杂志》http://emag.youkuaiyun.com 2005 年1 月 总第1 期 - 93 -本文作者:steedhorse(晨星)printf 可能是许多程序员在开始学习C 语
2013-09-17 12:08:21
881
转载 父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
很多内容转自link这篇文章linkwait()的函数原型是:#include #include pid_t wait(int *status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出。如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子
2013-09-16 23:50:06
860
转载 system函数,WIFEXITED和WEXITSTATUS
1,在程序中,用exit来设置进程的退出值时,虽然该函数的参数类型为int型,但再父进程中只能取到其值的低8位.所以用exit返回值时,高于255的值是没有意义的.2,对于system函数,返回值是由两部分组成的,低8位值表示所执行的脚本在执行过程中所接收到的信号值,其余的位表示的脚本exit退出时所设置的值, 即脚本内exit退出是的值的低8位,在system返回值的低9-1
2013-09-16 23:45:22
5296
原创 linux环境下用QT实现打地鼠游戏源码共享
每一个qt程序都是一个文件夹!(即都必须创建一个目录)1 mkdir dir2 cd dir 创建文件 cc/cpp3 qmake -project 生成工程文件.pro4 qmake 生成makefile5 make6 默认生成与目录同名的可执行文件!7 ./执行,查看结果!游戏打地鼠:布局,button,信号与槽,计时,
2013-09-16 11:08:44
5810
转载 比特 字节 字
1、位(bit) 来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位,11010100是一个8位二进制数。一个二进制位只可以表示0和1两种状态(21);两个二进制位可以表示00、01、10、11四种(22)状态;三位二进制数可表示八种状态(23)……。 2、字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。 字节是计算机中数据处
2013-09-09 15:52:30
1728
转载 MP3文件格式解析
MP3文件格式解析Peter Lee 2008-06-05 目录一、概述二、整个MP3文件结构三、MP3帧格式1. 帧头格式2. MAIN_DATA四、ID3标准1. ID3V12. ID3V2五、MP3文件实例剖析六、资料 一、 概述MP3 文件是由帧(frame)构成的,帧是 MP3 文件最小的组成单位。
2013-09-09 14:43:13
2331
转载 linux下解决:cannot execute binary file
linux系统下遇到cannot execute binary file的问题,一般由以下情况造成:非root用户或者无执行权限编译环境不同(程序由其他操作环境复制过来)对于第一种情况,采用增加执行权限即可chmod +x program对于第二种情况,建议将该程序二进制包拷贝过来,重新编译程序。因为我在实际操作过程中发现我将美国的VPS的整个操作系统环境打包后下载到本地服务器上解
2013-09-09 10:11:12
209649
5
转载 函数fork与vfork的区别与联系详解
函数fork与vfork的区别与联系详解2009-06-16 15:50:21 分类: LINUX创建一个新进程的方法只有由某个已存在的进程调用fork()或vfork(),当然某些进程如init等是作为系统启动的一部风而被内核创建的。1.fork函数介绍#include #include pid_t fork (void );正确返回:
2013-08-22 23:00:40
859
转载 fork函数与vfork函数
fork函数与vfork函数来源:考试大 【考试大:你最值得信赖的考试顾问】 2010年12月13日 一、fork 1. 调用方法 #include #include pid_t fork(void); 正确返回:在父进程中返回子进程的进程号,在子进程中返回0 错误返回:-1 子进程是父进程的一个拷贝。即,子
2013-08-22 22:58:43
875
转载 qsort 快速排序法
sort(数组名,数组末地址,compare) //若不写compare则默认升序排列,需要#include例如:sort(a,a+10); //将数组a以升序排序,假设先前定义了a[10]并输入了数据 文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。qsort包含在头文件中,此
2013-08-22 22:52:52
1102
转载 linux fork函数知识整合
fork:n. 叉;餐叉;耙vt. 叉起;使成叉状vi. 分叉;分歧[cpp] view plaincopy#include #include /* 功能:复制进程 参数:无 返回值: 成功: 父进程:返回子进程id 子进程:返回0 失败: 返回-1 */
2013-08-22 22:32:38
832
原创 apue 13章 创建守护程序
13章的过程: 1 文件的权限 = open参数3 &(~umask) umask防止权限过大0644= 06660022 要取消限制: umask(0);设置屏蔽字为02 fork : 结束父进程3 在孤儿进程中调用setsid(void);4 chdir("/")5 关闭已经打开的文件描述符6将0,1,2重定向到/de
2013-08-22 21:47:03
825
Noisex-92完整版.zip
2020-03-27
Vodafone测试项及测试项分析.ppt
2020-03-27
linux环境下用QT实现打地鼠游戏源码共享
2013-09-16
GSM模块_短信收发设备_短信模块_工业手机
2011-11-19
镍镉电池的使用方法
2011-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人