
工具使用Skill
文章平均质量分 66
安然无忧
技术无捷径,一步一脚印
展开
-
FILE文件流的中fopen、fread、fseek、fclose的使用
FILE文件流用于对文件的快速操作,主要的操作函数有fopen、fseek、fread、fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满足编程中的需要。以下分别进行说明,还有他们使用时的注意事项fopen函数原型 FILE * fopen(const char *path,cost char *mode)作用:打开一转载 2012-05-19 16:58:41 · 1144 阅读 · 0 评论 -
argc argv
转载于 http://www.cnblogs.com/chenyadong/archive/2011/08/30/2159769.html,谢谢楼主的辛勤付出!argc,argv 用命令行编译程序时有用。主函数main中变量(int argc,char *argv[ ])的含义我们平时定义主函数时通常的写法为:int main( )或void main( )其实,int mai转载 2012-05-19 16:44:11 · 599 阅读 · 0 评论 -
typedef 函数指针 小练习
定义一个函数指针类似:int (*ptr)(int a,int b);ptr只能指向同参数同返回值类型的函数名,相当于内存中函数代码块的首地址。 typedef可以实现简化目的,typedef int (*FP)(int a ,int b), FP ptr;相当于定义了这种类型的函数指针。#include typedef int (*FP)(int,int);//可使用FP来定义函数原创 2012-05-19 15:28:43 · 681 阅读 · 0 评论 -
学习笔记-1
1 关于符号解析和重定位的思考:编译生成的.o属于可重定位原创 2014-07-20 16:35:54 · 577 阅读 · 0 评论 -
git tag
git tag — 标签相关操作发表于 2011年06月29日 由 机器猫标签可以针对某一时间点的版本做标记,常用于版本发布。列出标签$ git tag # 在控制台打印出当前仓库的所有标签$ git tag -l ‘v0.1.*’ # 搜索符合模式的标签打标签git标签分为两种类型:轻量标签和附注标签。轻量标签是指向提交对象的引转载 2014-09-24 22:29:00 · 502 阅读 · 0 评论 -
github 环境搭建
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。github的SSH配置如下:一 、设置Git的user name和email:$ git config --global user.name "xuhaiyan"$ git config --global user.email "haiyan.xu.vip@gmail转载 2014-09-24 21:42:22 · 593 阅读 · 0 评论 -
cscope & ctags安装使用
转自:http://blog.youkuaiyun.com/amicablehj/article/details/5725981linux源代码提供了制作cscope索引文件和tags文件的make命令。一,软件安装先安装cscope:sudo apt-get install cscope在安装ctags:http://ctags.sourceforge.net转载 2014-10-25 15:30:25 · 626 阅读 · 0 评论 -
taglist安装配置
Taglist是以tags文件为基础,需要ctags生成tags文件。安装ctags,Redhat和CentOS可以执行yum install ctags,Debian和Ubantu可以执行apt-get install ctags下载Taglist,地址是http://sourceforge.net/projects/vim-taglist/files/vim-taglist/解压t转载 2014-10-25 15:26:34 · 723 阅读 · 0 评论 -
Markdown语法示例
什么是MarkdownMarkdown是一个将文本转化为HTML的工具。简单来说,Markdown是一个兼顾可读性与易用性的轻量级标记体系。Markdown并不追求大而全,它只关心HTML里最常用的几个标记,对于一些不常用的标记它允许直接将HTML标记插入文本。标题Markdown提供了两种方式(Setext和Atx)来显示标题。语法:Setex原创 2014-09-29 21:41:59 · 655 阅读 · 0 评论 -
octopress+github管理个人博客
$sudo apt-get install ruby1.9.1-fullyou can execute command:$sudo update-alternatives --config rubyto select the altiernative ruby which you have installed.and then, execute below commands to fi原创 2014-09-27 11:43:08 · 899 阅读 · 0 评论 -
makefile小结
1 关于makefile的一些想法: 首先要遵循一个书写规则: target为目标,可以是实际的.o文件,或者是可执行文件,也可以是一个标签;pre request:是指执行前先要做什么事情;command: 是指为完成target,需要执行的命令;target:pre request command2 执行make,默认会执行第一个target,除非指定目标如ma原创 2014-09-29 16:39:45 · 572 阅读 · 0 评论 -
C:带有const修饰的指针解读
C:带有const修饰的指针解读 通过实例来看看const所修饰的指针使用方法: 1、 先看一个普通的指针使用。 形式:int *pTmp 含义:一个普通的指向int类型的指针[cpp] view plaincopyprint?int main(int argc, char *argv[]) { int i = 1转载 2015-01-20 09:39:54 · 757 阅读 · 0 评论 -
关于Malloc字节对齐的思考
1 假设malloc返回一个指针,希望该地址16字节对齐原创 2014-11-21 23:02:02 · 8331 阅读 · 2 评论 -
Makefile 伪目标
本节我们讨论一个Makefile中的一个重要的特殊目标:伪目标。 伪目标是这样一个目标:它不代表一个真正的文件名,在执行make时可以指定这个目标来执行其所在规则定义的命令,有时我们也可以将一个伪目标称为标签。使用伪目标有两点原因:1. 避免在我们的Makefile中定义的只执行命令的的目标(此目标的目的为了执行执行一系列命令,而不需要创建这个目标)和工作目录下的实际文件出现名字冲突。2. 提转载 2015-07-08 19:37:06 · 448 阅读 · 0 评论 -
C++的namespace
namespace中文意思是命名空间或者叫名字空间,传统的C++只有一个全局的namespace,但是由于现在的程序的规模越来越大,程序的分工越来越细,全局作用域变得越来越拥挤,每个人都可能使用相同的名字来实现不同的库,于是程序员在合并程序的时候就会可能出现名字的冲突。namespace引入了复杂性,解决了这个问题。namespace允许像类,对象,函数聚集在一个名字下。本质上讲namespace转载 2015-08-10 18:46:59 · 468 阅读 · 0 评论 -
目标文件
在Linux中,.o可重定位文件,可执行文件/bin/bash,共享目标文件.so,核心存储文件,都可以称为目标文件,采用Elf格式存储。一般来说,生成的.o文件都包括重定位表和符号表,这两个表都以段的形式表现。重定位表:rel.text;rel.data等,如果引用了其余目标中间中的函数或全局变量,就会在这两个段中标明出来,通过指明段类型为SHT_REL,来标明该段是重定位段。原创 2012-08-29 22:37:56 · 564 阅读 · 0 评论 -
有符号 无符号转换
1 有符号数在计算机中的存储方式,均已补码表示。正数的补码即本身,4的补码为0x00000100;负数的补码为除最高位符号位外,其余位取反加1.因此-4的补码:0x10000100-->0x11111011->0x11111100 为0xFC。2 无符号有符号在做运算时,有符号数会自动提升为无符号数。3 赋值操作时,UINT8 a =1 ;INT8 b = -1原创 2012-08-29 23:05:43 · 1371 阅读 · 0 评论 -
sed命令小结
sed命令,也是以行为输入单元进行操作:1 sed 's/test/test1/g' file.txt 替换file.txt文件内每行包含"test"字符串的内容为"test1";g表示全部替换,否则只替换该行的第一个"test" 执行这条命令,相当于将结果输出到一个缓冲文件,实际上并未修改原文件。 如果想修改结果直接体现在file.txt中,需要加上-i选项;sed -i '原创 2014-09-10 16:21:07 · 557 阅读 · 0 评论 -
grep 命令小结
linux grep命令 1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。转载 2014-09-10 16:19:30 · 518 阅读 · 0 评论 -
SecureCRT配色方案
终端有一个好的配色,不仅能保护自己的眼睛,也能给人一个好心情,本配色方案适合任意一种SSH客户端软件.设置背景颜色Options => Sessions options => Terminal => Emulation,在 Terminal下拉列表下选择Linux,勾选 ANSI Color。 默认的 ANSI Color 的背景颜转载 2014-09-11 12:24:04 · 1001 阅读 · 0 评论 -
dd命令
dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。1 dd命令的解释。定义dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。参数123456789101转载 2014-03-12 21:13:20 · 2268 阅读 · 0 评论 -
list.h分析使用
仰慕kernel的list.h良久了,自己也曾经牛刀小试过一把.今日得闲,暂探索性的分析一把.1. 简约而又不简单的链表定义于双向链表而言,内核中定义了如下简单结构: struct list_head { struct list_head *next, *prev; };转载 2014-03-13 18:58:24 · 905 阅读 · 0 评论 -
log 出错处理重定向到一个文件
#include char *strerror(int errnum);此函数将errnum(通常就是errno)映射为一个出错信息字符串,并且返回此字符串的指针。#include void perror(const char *msg);perror函数在标准出错上产生一条出错消息(基于errno的当前值),然后返回。它首先输出msg字符串,然后“:转载 2014-03-20 11:08:38 · 2459 阅读 · 0 评论 -
Linux gdb调试器用法全面解析
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能:启动程序,可以按照工程师自定义的要求随心所欲的运行程序。让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。当程序被停住时,可以检查此时程序中所发生的事,并追索上文。动态地改变程序的执行环境。不管是调试Linux内核空间的驱动还是调试用户空间的应用程序,掌握gdb的用转载 2014-07-20 17:10:39 · 518 阅读 · 0 评论 -
list.h链表练习
基于list.h写了一段小程序,果然短小精悍,以后链表就直接用它了。通常使用struct list_head ,应该是将其作为自定义结构体中的一部分。 有几个比较难理解的宏:INIT_LIST_HEAD();声明一个链表头;list_for_each (..) 遍历组成list_head链表的每个元素;list_entry(...) 通过结构体某一个成员的指针,推算出整个结构体原创 2014-03-26 21:07:49 · 703 阅读 · 0 评论 -
C语言Volatile关键字的作用
一个结构体变量再另外一cpu修改了,我在这cpu上一直while判断,却发现该值一直处于不变的状态。纠结了半天确定是cache的问题,却一直没想到只要声明成volatile就能解决该问题,嗨。。。一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序转载 2014-02-27 14:34:22 · 746 阅读 · 0 评论 -
argc argv
argc,argv 用命令行编译程序时有用。 主函数main中变量(int argc,char *argv[ ])的含义我们平时定义主函数时通常的写法为:int main( )或void main( )其实,int main( ) 只是 UNIX 及 Linux 默许的用法,main(int argc, char *argv[ ], char *env[ ])才是UNI转载 2014-01-18 10:29:45 · 614 阅读 · 0 评论 -
c语言中可变参数的原理---printf()函数
函数原型: int printf(const char *format[,argument]...) 返 回 值: 成功则返回实际输出的字符数,失败返回-1. 函数说明: 在printf()函数中,format后面的参数个数不确定,且类型也不确定,这些参数都存放在栈内.调用printf()函数时,根据format里的格式("%d %f...")依次将栈里参数取出转载 2014-01-18 10:28:59 · 1635 阅读 · 0 评论 -
静态链接库和动态链接库
原文地址:http://blog.youkuaiyun.com/shuaishuai80/article/details/6202528 库,是一种封装机制,简单说是把所有的源代码编译成目标代码后打成的包.库的开发者除了提供库的目标代码外,还提供一系列的头文件,头文件中就包含了库的接口,另外还有一些必要的注释.库函数根据是否被编译到程序内部而分为静态链接库(static)和动态链接库(dynami转载 2014-01-18 10:28:13 · 768 阅读 · 0 评论 -
编译知识
四个过程:预处理Preprocessing、编译Compile、汇编Assembly、链接LinkingPreprocessing:通常完成一些宏扩展、包含头文件、删除注视等,生成.i文件;Compile:gcc -S hello.i -o hello.S生成汇编文件,把预处理的文件进行一系列的词法分析、语法分析、语义分析及优化后生产相应的汇编代码文件;汇编过程也可以使用汇编器as原创 2014-01-18 10:26:46 · 601 阅读 · 0 评论 -
C/C++刁钻问题各个击破之细说sizeof .
总结:1 int array[10], sizeof(array)是整个数据占的字节数,可通过sizeof(array)/sizeof(array[0])求得数据元素的个数; Sizeof的作用非常简单:求对象或者类型的大小。然而sizeof又非常复杂,它涉及到很多特殊情况,本篇把这些情况分门别类,总结出了sizeof的10个特性:(0)sizeof是运算符,不是函数;转载 2014-01-08 18:42:12 · 576 阅读 · 0 评论 -
rm -rf递归删除子目录中的文件
解决办法:先用find命令根据文件名查找当前目录及子目录中的所有.o文件,然后将查找结果通过xargs分段传给rm命令执行删除:find . -name "*.o" | xargs rm -rf原创 2013-12-09 16:46:25 · 2997 阅读 · 0 评论 -
Java的package和import机制
一些人用了一阵子的Java,可是对于 Java 的 package 跟 import 还是不太了解。很多人以为原始码 .java 文件中的 import 会让编译器把所 import 的程序通通写到编译好的 .class 档案中,或是认为 import 跟 C/C++ 的 #include 相似,实际上,这是错误的观念。 让我们先了解一下,Java 的 package 到底有何用处。转载 2015-08-10 20:07:10 · 302 阅读 · 0 评论