自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 switch引发的错误 a label can only be part of a statement and a declaration is not a statement

用switch的时候发现一个错误a label can only be part of a statement and a declaration is not a statement 仔细观察以后发现是没有正确的加大括号引起的。switch(a){        swtch(a){case 1:         case 1:...........

2017-07-24 09:55:10 4661

转载 Linux 下的dd命令使用详解(摘录)

一、dd命令的解释dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。3. ibs=

2017-07-23 18:45:06 354

转载 对于linux下system()函数的深度理解

这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为是其他的代码影响到这个,或是内核驱动文件系统什么的异常导致,昨天有出现了这个问题,就随手百了一下度,问题出现了,很多人都说system()函数要慎用要少用要能不用则不用,system()函数不稳定? 

2017-07-23 18:42:48 382

转载 X86汇编语言学习手记

X86汇编语言学习手记(1)作者: BadcoffeeEmail: blog.oliver@gmail.com2004年10月原文出处: http://blog.csdn.net/yayong版权所有: 转载时请务必以超链接形式标明文章原始出处、作者信息及本声明这是作者在学习X86汇编过程中的学习笔记,难免有错误和疏漏之处,欢迎指正。作者将随时修改错误并

2017-07-11 11:25:22 661

转载 Linux下栈溢出

1. 概述    栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等;和堆相比,栈通常很小,在Linux下,通过ulimit -s可以查看栈的大小。    所谓栈溢出,是缓冲区溢出的一种,本质上是写入栈的数据超过栈的大小,使得数据写入其他单元,往往造成不可预期的后果,最常见的就是程序崩溃。2. 实例一个栈溢出的程

2017-07-11 11:05:46 1262

转载 Linux与堆栈概念

在学习C/C++编程的时候,老师都会反复灌输一些概念。比如程序内变量在堆栈上的分配,栈是由高地址到低地址,堆是由低地址到高地址等等,然后画出这样一幅经典概念图:图片来自:http://blog.csdn.net/wind19/article/details/5964137这个概念图容易让读者误认为这一大段的程序在具体分配到的物理内存上面是连续的。换句话说,整个程序在加载到内

2017-07-11 10:53:57 387

转载 Linux C 堆与栈的区别

一、预备知识——程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)

2017-07-11 10:49:28 248

转载 Linux的SOCKET编程详解

Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX system V有

2017-07-11 09:42:50 209

转载 数据链路层LLDP协议

一、LLDP协议概述 随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加自己特有的功能,这就导致在一个网络中往往会有很多具有不同特性的、来自不同厂商的设备,为了方便对这样的网络进行管理,就需要使得不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息。 LLDP(Link Layer Discovery Protocol,链路层发现协

2017-07-10 13:12:51 637

原创 Linux程序崩溃调试手段--core使用(续)

core dump又叫核心转储,当程序运行过程中发生异常,程序异常退出时,由操作系统把程序当前的内存状况存储在一个core文件中,叫core dump. (linux中如果内存越界会收到SIGSEGV信号,然后就会core dump)        在程序运行的过程中,有的时候我们会遇到Segment fault(段错误)这样的错误。这种看起来比较困难,因为没有任何的栈、t

2017-07-05 13:34:31 4445

原创 Linux程序崩溃core使用(续)

Linux查看调用堆栈的信息,只是需要更改Linux设置,使程序崩溃时候产生core文件。然后gdb调试即可。

2017-07-05 09:17:52 322

转载 深入理解C语言的函数调用过程

本文主要从进程栈空间的层面复习一下C语言中函数调用的具体过程,以加深对一些基础知识的理解。    先看一个最简单的程序:点击(此处)折叠或打开/*test.c*/#include stdio.h>int foo1(int m,int n,int p){        int x = m + n + p;        return x

2017-07-04 16:18:21 2976

转载 Linux下objdump使用方法

Linux下objdump命令常见用法举例:objdump -x obj:以某种分类信息的形式把目标文件的数据组成输出;objdump -t obj:输出目标文件的符号表()objdump -h obj:输出目标文件的所有段概括()objdump -j ./text/.data -S obj:输出指定段的信息(反汇编源代码)objdump -S obj:输出

2017-07-04 10:31:58 1564

转载 Linux如何查看进程、杀死进程、启动进程等常用命令

1.查进程    ps命令查找与进程相关的PID号:    ps a 显示现行终端机下的所有程序,包括其他用户的程序。    ps -A 显示所有程序。    ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。    ps -e 此参数的效果和指定"A"参数相同。    ps e 列出程序时,显示每个程序所使用的环境变量。    ps

2017-07-04 10:27:15 340

转载 Linux通过PID查看进程完整信息

通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。先通过top查看进程PID这时,我们需要通过以下的方法来查看进程的详细信息:Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。

2017-07-04 10:25:11 4848

原创 linux调试----addr2line将(转换为地址及所在的文件及行数)

Addr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。这种功能对于将跟踪地址转换成更有意义的内容来说简直是太棒了。要了解这个过程是怎样工作的,我们可以试验一个简单的交互式的例子。这个示例 C 文件(main.c)是通过 cat 一个简单的应用程序实现的(也就是说,将标准输出的文本重定向到一个文件中)

2017-07-03 13:33:50 5173

原创 linux调试----addr2line

我们在linux下开发程序时,经常遇到Segmentation fault的错误信息,如果代码比较少还可以去一行行排除,但是代码量比较大的时候,往往是一件头疼的事情。Segmentation fault会有地址抛出,我们可以利用addr2line定位到程序出错的行,这样是不是很方便的排查问题。下面就简单的介绍一下addr2line的使用方法。1)编写测试代码故意产生Segmentation f

2017-07-03 13:24:54 1035

原创 Linux生成core使用

在Linux下产生并调试core文件 先看看我用的是个什么机器:[root@localhost work]# uname -aLinux localhost.localdomain 2.6.32-279.el6.i686 #1 SMP Wed Jun 13 18:23:32 EDT 2012 i686 i686 i386 GNU/Linux 再看看默认的一些参数,注意core fi

2017-07-03 13:18:07 898

gcc和g++简介

Linux 中最重要的软件开发工具是 GCC。GCC 是 GNU 的 C 和 C++ 编译器。实际上,GCC 能够编译三种语言:C、C++ 和 Object C(C 语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。

2019-01-31

空空如也

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

TA关注的人

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