自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

转载 Linux下虚拟网卡tun/tap

#include <stdio.h>#include <string.h>#include <linux/if_tun.h>#include <sys/types.h>#include <net/if.h>#include <sys/stat.h>#include <fcntl.h>#include &l...

2016-05-12 16:35:00 131

转载 数组溢出导致的core dump

看这两段代码,哪个会core呢?#include <stdio.h>int main(){   int stack_of[100000000];   int* a;   a = stack_of;   a[99999999] = 0xff;  return(0);}#include &l...

2016-05-09 16:31:00 142

转载 GDB详解

http://www.cnblogs.com/ggjucheng/archive/2011/12/14/2288004.html#_Toc311658065贴个链接而已转载于:https://www.cnblogs.com/CalvinWang/p/5466453.html

2016-05-06 17:31:00 106

转载 用backtrace打印函数栈信息

Linux的应用程序在core dump之后,内核会把该应该程序当前的内存信息dump出来,解开core文件以后可以看到函数的调用栈。那么如果没有core dump,可以看到函数的调用栈吗?当然可以了,Linux提供了相关了系统调用backtrace和backtrace_symbols。注意这两个系统调用跟具体的体系架构有关,在x86上支持的是最好的,如果是其他的系统架构则要小心一些。看...

2016-05-06 15:16:00 131

转载 fork有啥用

#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(){ pid_t pid1; pid_t pid2; pid1 = fork(); pid2 = fork(); printf("pid1:%d, pid2:%d\n", pid...

2016-05-04 09:50:00 129

转载 linux swap分区作用

Linux divides its physical RAM (random access memory) into chucks of memory called pages. Swapping is the process whereby a page of memory is copied to the preconfigured space on the hard disk, c...

2016-05-03 09:53:00 141

转载 GNU C和ANSI C的区别

简单的说就是编译器不同。GNU C提供的功能更多,加入了很多奇奇怪怪的宏(特殊属性声明)来优化编译出来的机器指令。如果你看到类似___XXX()____这样的东东,多半就是GNU C里面定义的。Linux内核的编译用的是GNU C。用GNU C的扩展特性,程序的可移植性会变差。最后一点:GNU C就是gcc啦。转载于:https://www.cnblogs.com/CalvinWan...

2016-04-15 15:25:00 110

转载 寄存器的地址

读芯片的寄存器定义文档的时候,每个寄存器都定义了各自的地址。这个地址看起来和内存的地址是一样一样的。那中间有什么关联呢?其实没啥大的关联,只不过寄存器的地址和内存的地址都是在CPU的寻址空间中。简单的说寄存器的地址指向的就是寄存器,跟其他什么什么的没有关系。访问寄存器的方式和访问内存的方式一样一样的。不过要注意一下,这种方式只适应大多数的嵌入式芯片。对于X86芯片来说,访问寄存器是有特别...

2016-04-11 15:56:00 1614

转载 volatile的用法

还记得上一篇在介绍gcc的参数的时候有个超级难搞的-O参数吧。这个参数是设置编译优化的级别的。编译优化的一个假设是我们写的程序会贪婪无度的使用机器的资源,因此编译器会优化汇编代码,提升执行效率。但是带来的代价是可能会出现难以发现的逻辑错误。CPU是从寄存器中取出变量的值,寄存器中的值是从内存中读取出来的。正常情况下内存中的值发生了修改,把值拷贝到寄存器中。但是有可能发生这样一种情况,即内...

2016-04-11 15:09:00 53

转载 gcc的参数

gcc就是用来编译源文件的命令咯,CPU又看不懂源文件。作为这么重要的命令,gcc的参数可以不少的,应该说是巨多。当然了,也可以直接 gcc hello.c hoho。常用的选项-c:生成.o文件,就是不连接 (compile)-S:输出汇编语言文件-E:只做预处理,送往标准输出 (express)-o file:指定输出文件为file-v:显示编译过程中很多的信...

2016-04-07 16:02:00 63

转载 Linux对象文件是个啥东东

读书的时候,C语言课程教的是先写C的代码,然后编译出对象文件,最后链接出可执行文件。那么问题来了,为什么一定要先编译出对象文件呢?难道不能直接编译出可执行文件吗?保持一个有疑问的心才能持续的学习,Linux的世界的知识真是太多,也太有趣了。好吧,回归主题。直接编译出可执行文件是完全可以的!而且稍微分析一下对象文件和可执行文件也会发现,他们之间是有很多的相同之处的。那么为何需要对象文件?我...

2016-04-06 14:42:00 196

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除