- 博客(54)
- 资源 (24)
- 收藏
- 关注
转载 make 中 -n 命令的使用
man make手册中是这样解释的:-n Print the commands that would be executed, but do not execute them. 执行命令,但不是真正的执行。常用来看,自己写的makefile变量展开后是什么。 例如:makefile中有如下: ........tso_biz_alarmduty1
2014-05-16 16:26:13
1210
转载 union的sizeof问题看cpu的对界
考虑下面问题:(默认对齐方式) union u{ double a; int b;}; union u2{ char a[13]; int b;}; union u3{ char a[13]; char b;}; coutcoutcout 都知道unio
2014-05-11 17:17:45
692
转载 函数malloc()和calloc()的区别
函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。malloc()函数有一个参数,即要分配的内存空间的大小:void*malloc(size_tsize);calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。void*calloc(size_tnumElements,size_
2014-05-11 17:12:00
641
转载 makefile--隐含规则
隐含规则在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o]文件,Windows下是[.obj]文件)。本章讲述的就是一些在Makefile中的“隐含的”,早先约定了的,不需要我们再写出来的规则。“隐含规则”也就是一种惯例,make会按照这种“惯例”心照不喧地来运行,那怕我们的Makefile
2014-04-09 11:41:38
858
转载 makefile--运行
make 的运行一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想让make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用 make命令的。[编辑]make的退出码make命令执行后有三个退出码: 0 —
2014-04-04 11:46:21
1198
原创 vim移动总结
1. hjkl 上下左右移动一个字符,前面加数字表示一次移动多个字符。2. HML 分别为移动到屏幕到的上方、中间、上方。、#H :移动到距屏幕顶端#行的位置#L: 移动到距屏幕底端#行的位置3. #w、#e向后移动一个单词#b向前移动一个单词4. CTRL+B、CTRL+F分别是向前向后翻页,前面也右以加数字
2014-04-04 11:39:27
861
转载 cat 命令
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 1.命令格式:cat [选项] [文件]...2.命令功能:cat主要有三大功能:1.一次显示整个文件:cat filename2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑
2014-04-04 10:38:06
772
转载 makefile--函数
使用函数在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。[编辑]函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $( )或是 ${ }这里,就是函数名,make支持的函数不
2014-04-03 16:51:40
1240
1
转载 touch命令
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。1.命令格式:touch [选项]... 文件...2.命令参数:-a 或--time=atime或--time=access或--time=use 只更改存取时间。-c 或--no-create 不建立任何文档。-d 使用指定的日期时间,而非现
2014-04-03 16:16:33
486
转载 cp 命令
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。 1.命令格式:用法: cp [选项]... [-T] 源 目的
2014-04-01 13:53:49
996
转载 makefile--条件判断
使用条件判断使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。 示例下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。 libs_for_gcc = -lgnunormal_libs =foo: $(objects)ifeq ($(CC),gcc)
2014-03-28 10:40:45
608
转载 mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。 1.命令格式: mv [选项] 源文件或目录 目标文件或目录2.命令功能:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时
2014-03-28 10:32:10
864
转载 rmdir命令
rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的。(注意,rm - r dir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。 1.命令格式:rmdir [选项]... 目录...2.命令功能:该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限。 3.命令参数:
2014-03-28 10:00:47
709
转载 rm命令
rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑
2014-03-27 17:16:37
736
原创 VIM复制总结
VIM寄存器 VIM的复制、粘贴功能是通过VIM寄存器和系统剪切板实现的。 Vim共有9类寄存器:1. unamed register “”存储最近被删除(使用命令d、c、s、x)或复制(命令y)的内容,当使用命令p进行粘贴时(未指定寄存器),默认使用的是这个寄存器的内容。2. 10 numberd regist
2014-03-27 15:52:44
1290
转载 mkdir 命令
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。1.命令格式:mkdir [选项] 目录...2.命令功能:通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所
2014-03-27 10:52:04
596
转载 MAKEFILE --变量
使用变量在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同的是,你可以在Makefile中改变其值。在Makefile中,变量可以使用在“目标”,“依赖目标”, “命令”或是Makefile的其它部分中。变量的命名字可以包含字符、数字,下划线(可以是数字开头),
2014-03-27 10:17:53
796
原创 VIM模式
VIM有6种模式,如下: 1.正常模式 (Normal mode) 默认进入vim之后,处于这种模式。在本模式下,可以执行各种命令,不能输入文字。在其它模式下,用ESC或者 ctrl+c 键可以退到normal mode. 2.可视化模式 (Visual mode) 在可视化模式下,可以对一个文本块的整体进行操作,可视化模式可以分为以下三种: 用v命令进入
2014-03-26 16:29:51
832
原创 开始使用VIM
一直想学习使用VIM,但因为各种原因,都没去进行。今天就当是一个开始吧,学习过程中的收获会记录在这里:一是督促自己要坚持;二是方便以后用到的时候查阅;三是分享一下。我想这也是写博客的好处吧。
2014-03-26 14:40:24
1026
转载 2.6 内核模块的Makefile模板
# Makefile2.6ifneq ($(KERNELRELEASE),)#kbuild syntax. dependency relationshsip of files and target modules are listed here.mymodule-objs := file1.o file2.oobj-m := mymodule.o elsePWD := $
2014-03-26 10:35:07
598
转载 makefile--命令
书写命令 每条规则中的命令和操作系统Shell的命令行是一致的。make会按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令。我们在UNIX下可能会使用不同的Shell,但是make的命令默认是被“/bin/sh”——
2014-03-26 09:17:08
1364
转载 pwd命令
Linux中用 pwd 命令来查看”当前工作目录“的完整路径。 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。1.命令格式:pwd [选项]2.命令功能:查看”当前工作目录“的完整路径3.常用参数:一般情况下不带任何参数如果目录是链接时:格式:pwd -
2014-03-26 09:13:26
694
转载 cd命令
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的。所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧。 1. 命令格式:cd [目录名] 2. 命令功能:切换当前目录至dirName 3. 常用范例3.1 例一:进入系统根目录命令:cd
2014-03-25 08:49:58
934
转载 ls命令
ls命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。ls 命令在日常的linux操作中用的很多!1. 命令格式:ls [选项] [目录名]2.
2014-03-24 13:59:48
581
转载 MAKEFILE -- 自动生成依赖性
在Makefile中,我们的依赖关系可能会需要包含一系列的头文件,比如,如果我们的main.c中有一句“#include "defs.h"”,那么我们的依赖关系应该是:main.o : main.c defs.h但是,如果是一个比较大型的工程,你必需清楚哪些C文件包含了哪些头文件,并且,你在加入或删除头文件时,也需要小心地修改Makefile,这是一个很没有维护性的工作。为了避免这
2014-03-24 11:50:24
717
转载 MAKEFILE--静态模式
静态模式可以更加容易地定义多目标的规则,可以让我们的规则变得更加的有弹性和灵活。我们还是先来看一下语法: : : ...targets定义了一系列的目标文件,可以有通配符。是目标的一个集合。 target-pattern是指明了targets的模式,也就是的目标集模式。 prereq-patterns是目标的依赖模式,它对target-pattern形成的模式再
2014-03-24 11:33:49
525
转载 MAKEFILE--多目标
Makefile的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多个目标的生成规则的执行命令不是同一个,这可能会给我们带来麻烦,不过好在我们可以使用一个自动化变量“$@”(关于自动化变量,将在后面讲述),这个变量表示着目前规则中所有的目标的集合,这样说可能很抽象,还是看一个例子吧。bigoutput
2014-03-24 11:30:37
1279
转载 MAKEFILE--通配符
如果我们想定义一系列比较类似的文件,我们很自然地就想起使用通配符。make支持三个通配符:“*”,“?”和“~”。这是和Unix的B-Shell是相同的。 波浪号(“~”)字符在文件名中也有比较特殊的用途。如果是“~/test”,这就表示当前用户的$HOME目录下的test目录。而 “~hchen/test”则表示用户hchen的宿主目录下的test目录。(这些都是Unix下的小知识了,mak
2014-03-24 11:26:08
1691
转载 MAKEFILE -- 伪目标
下面的“clean”目标,是一个“伪目标”, clean: rm *.o temp 我们生成了许多文件编译文件,我们也应该提供一个清除它们的“目标”以备完整地重编译而用。 (以“make clean”来使用该目标) ,调用相应的规则,来清除许多编译的文件(如:*.o文件)因为,我们并不生成“clean”这个文件。“伪目标”并不是一个
2014-03-24 11:22:12
582
转载 MAKEFILE --文件搜索
在一些大的工程中,有大量的源文件,我们通常的做法是把这许多的源文件分类,并存放在不同的目录中。所以,当make需要去找寻文件的依赖关系时,你可以在文件前加上路径,但最好的方法是把一个路径告诉make,让make自动去找。Makefile文件中的特殊变量“VPATH”就是完成这个功能的,如果没有指明这个变量,make只会在当前的目录中去找寻依赖文件和目标文件。如果定义了这个变量,那么,mak
2014-03-24 11:03:23
597
转载 GVRP技术
1 概述GARP协议主要用于建立一种属性传递扩散的机制,以保证协议实体能够注册和注销该属性。GARP作为一个属性注册协议的载体,可以用来传播属性。将GARP协议报文的内容映射成不同的属性即可支持不同上层协议应用。例如,GMRP和GVRP:l GMRP是GARP的一种应用,用于注册和注销组播属性;l GVRP是GARP的一种应用,用于
2014-03-21 14:56:13
15153
1
转载 程序员必须知道的97件事(1-10)
1.Act with Prudence"Whatever you undertake, act with prudence and consider the consequences" AnonNo matter how comfortable a schedule looks at the beginning of an iteration, you can't avoid
2014-03-20 10:37:29
1493
转载 fork函数小结
1.调用一次,返回两次。 2.子进程中fork返回0,父进程中fork返回子进程的PID。原因是:①在子进程中通过调用getppid可以方便的指导父进程的PID;②没有一个函数可以使父进程获得其所有子进程的PID。(所以在fork返回时,将子进程的PID直接返回给父进程)注:子进程的ID不可能为0,因为PID为0的进程是swapper进程。 3.父、子进程共享正文段,不共享
2014-03-20 10:28:21
722
转载 access函数
access():判断是否具有存取文件的权限相关函数 stat,open,chmod,chown,setuid,setgid表头文件 #include定义函数 int access(const char * pathname, int mode);函数说明 access()会检查是否可以读/写某一已存在的文件。参数mode有几种情况组
2014-03-19 15:22:35
773
原创 system()函数
system()—执行shell命令 头文件:#include 定义函数:int system(const char * string); 函数说明:system()会调用fork()产生子进程, 由子进程来调用/bin/sh-c string 来执行参数string 字符串所代表的命令, 此命令执行完后随即返回原调用的进程. 在调用system()期间SIGCHLD
2014-03-19 14:24:26
891
转载 交换机三种端口模式
以太网端口有三种链路类型:Access、Hybrid和Trunk。 Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
2014-03-18 17:03:23
956
转载 KCONFIG
内核源码树的目录下都有两个文档 Kconfig (2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这个.config
2014-03-14 11:08:52
845
转载 KBUILD系统原理分析
1. Kbuild kbuild,即kernel build,用于编译Linux内核文件。kbuild对makefile进行了功能上的扩充,使其在编译内核文件时更加高效,简洁。大部分内核中的Makefile都是使用Kbuild组织结构的kbuild Makefile。下面将介绍kbuild makefile的工作原理。 Linux内核的Makefile分为5个部分:
2014-03-13 20:18:13
2017
转载 线程私有数据
概念及作用 在单线程程序中,我们经常要用到"全局变量"以实现多个函数间共享数据。在多线程环境下,由于数据空间是共享的,因此全局变量也为所有线程所共有。但有时应用程序设计中有必要提供线程私有的全局变量,仅在某个线程中有效,但却可以跨多个函数访问,比如程序可能需要每个线程维护一个链表,而使用相同的函数操作,最简单的办法就是使用同名而不同变量地址的线程相关数据结构。这样的数据结构可以由P
2014-02-21 16:10:19
564
转载 POSIX 线程详解,第 3 部分
使用条件变量提高效率条件变量详解在 上一篇文章结束时,我描述了一个比较特殊的难题:如果线程正在等待某个特定条件发生,它应该如何处理这种情况?它可以重复对互斥对象锁定和解锁,每次都会检查共享数据结构,以查找某个值。但这是在浪费时间和资源,而且这种繁忙查询的效率非常低。解决这个问题的最佳方法是使用 pthread_cond_wait() 调用来等待特殊条件发生。了解 pthread
2014-02-21 09:25:34
661
TCP.IP_Illustrated__Volume_2_The_Implementatio.chm
2013-12-16
TCPIP.Illustrated Volume 1_the_protocols.chm
2013-12-16
Understanding the Linux Kernel3.chm
2013-11-12
Understanding Linux Network Internals.chm
2013-11-12
The Mythical Man-Month
2013-11-12
Running Linux.chm
2013-11-12
LinuxDeviceDrivers3.chm
2013-11-12
inux.Kernel.Development.2nd.Edition
2013-11-12
LINUX编程(英文版 )CHM
2013-11-12
代码大全(英文版)CHM
2013-11-12
Advanced Programming in the UNIX Environment - 2nd Edition.chm
2013-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人