
linux
文章平均质量分 64
lb015331
这个作者很懒,什么都没留下…
展开
-
编译内核(kernel)
学习linux就从内核编译开始,现在就让我们迈出第一步,下面记录编译过程(以下操作均在root下完成)。1、准备工作 我安装的是ubuntu10.04,为完成内核编译,还需要安装一下包: # apt-get install gcc # apt-get install make # apt-get install bzip2 # apt-get install libc6-dev # apt-get install ncur原创 2011-05-24 13:23:00 · 1409 阅读 · 2 评论 -
linux重启网络、时间同步、nfs服务等
1、网络服务 在vb上安装了Fedora 9的虚拟机,配置一个固定的IP地址。进入/etc/sysconfig/network-scripts/,用vi编辑器打开文件ifcfg-ethX进行编辑TYPE=EthernetDEVICE=eth2HWADDR=00:0c:29:94:1f:fbBOOTPROTO=noneONBOOT=yesUSERCTL=no原创 2012-08-01 00:14:00 · 2207 阅读 · 0 评论 -
编译选项导致死机(Unaligned userspace access in "XXX.exe" )
最近调试st7162,在运行中偶然出现死机现象,报Unaligned userspace access in "xxx.exe" pid=1247 pc=0x0041e80c ins=0x2c02该问题主要是第三方库和自己的编译选项不一致造成的,统一编译选项就可以解决这类问题,主要有关系的编译选项有:-O2 -Wno-deprecated原创 2012-09-05 15:28:44 · 1103 阅读 · 1 评论 -
gcc编译选项详解
gcc提供了大量的警告选项,对代码中可能存在的问题提出警告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration转载 2012-09-05 15:30:29 · 761 阅读 · 0 评论 -
linux signal
原文:http://hi.baidu.com/syqust/blog/item/cd8f6c633b8a617c0d33fa35.html信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异转载 2012-09-08 20:23:28 · 659 阅读 · 0 评论 -
LINUX TOP详解
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stop转载 2012-10-18 15:59:44 · 395 阅读 · 0 评论 -
CRT使用小技巧
一、日志保存方法 1、选择Options -> Global Options -> Log File -> Edit Default Settings,设置完Log file name后保存即可,如下图: 2、参数说明 %H - 主机名 %S - 会话原创 2012-11-12 15:05:50 · 519 阅读 · 0 评论 -
Wireshark图解教程--介绍界面、两个菜单以及capture filter的语法
您可以从Wireshark User's Guide中获得更多帮助。 运行Wireshark或者Ethereal: (Ethereal与Wireshak的区别是什么?)#wireshark #ethereal 选择需要捕捉的设备。Capture -> Options选择您想要捕转载 2012-11-13 14:01:09 · 541 阅读 · 0 评论 -
scanf/sscanf用法
scanf/sscanf %[]格式控制串的用法scanf中一种很少见但很有用的转换字符:[...]和[ ^...]。#includeint main() { char strings[100]; scanf("%[1234567890]",strings); printf("%s",strings);return 0; } 运行,输入:1234werew后转载 2013-04-27 09:16:36 · 432 阅读 · 0 评论 -
cramfs文件系统识别nand坏块的解决方法
1.内核支持: CONFIG_CRAMFS=y2.制作文件 1)获取mkcramfs工具 如果是ubuntu的话: apt-get install mkcramfs 否则从 http://sourceforge.net/projects/cramfs/ 下载源码编译 2)制作cramfs文件镜像 mkcramfs ./rootf转载 2014-01-23 18:48:28 · 668 阅读 · 0 评论 -
*** glibc detected *** double free or corruption: 0x0937d008 *** 错误
Q: 在执行一个程序时,出现如下错误:*** glibc detected *** double free or corruption : 0x0937d008 ***是怎么回事? A: 设置MALLOC_CHECK_环境变量再运行程序,呵呵,错误信息消失MALLOC_CHECK_=0 ./myprogram红 帽企业 Linux 4 提供的 glibc 可以执行附加的内部数据转载 2012-07-28 12:06:25 · 1468 阅读 · 0 评论 -
/proc/meminfo信息介绍
cat /proc/meminfo MemTotal: 128228 kB所有可用RAM大小(即物理内存减去一些预留位和内核的二进制代码大小)MemFree: 2180 kBLowFree与HighFree的总和,被系统留着未使用的内存Buffers: 31016 kB用转载 2012-07-28 12:04:32 · 714 阅读 · 0 评论 -
linux下core文件生成及调试方法
在程序发现段错误等不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息,编译时加了-g参数)。使用gdb查看生成的core文件,可以很容易找出导致程序出错的代码所在的文件和行数。1、linux系统下生成及调试core文件 1.1 开启core文件并设置其大小 1.1.1)使用ulimit -c命令,如果结果为0,则表示没有开启此功能,即不会生成原创 2012-07-19 00:06:17 · 2982 阅读 · 0 评论 -
预编译头文件的问题(gcc)
最近写代码,遇见了一个问题,就是在.h文件中定义了一个宏函数,在相关的.c文件中调用,结果编译出现链接出错,找了好久,终于找出了问题所在,在这里记录一下。 首先、说说预编译的好处:就是提高编译速度 其次、预编译头文件可以用在一下场合: 1、提供某种固定功能和不变的类型定义 2、减少编译的时间 接着、说说預编译可能带来的问题: 在预编译中(gcc)会将.h编译成.gch文件,按理说只要.h文件改原创 2011-06-01 17:13:00 · 500 阅读 · 0 评论 -
Linux 线程同步---条件变量
1. 相关函数 #include pthread_cond_t cond = PTHREAD_COND_INITIALIZER; int pthread_cond_init(pt转载 2011-06-10 16:10:00 · 455 阅读 · 0 评论 -
建立交叉编译环境
http://blog.youkuaiyun.com/lb015331/archive/2011/06/12/6539178.aspx 1、下载arm-linux-gcc-xxx.tar.gc包(我当前下载的是arm-linux-gcc-4.4.3-20100728.tar.gz) 在网站http://www.arm9.net/download.asp下载相应的版本原创 2011-06-12 11:20:00 · 500 阅读 · 0 评论 -
gcc编译生成动态库及gcc参数说明和可变参数的使用
http://blog.youkuaiyun.com/lb015331/archive/2011/06/16/6547543.aspx 动态库*.so在linux下用c和c++编程时经常会碰到,记录一下(突然用的时候忘了~_~),以便日后查看。 一、编译动态库 下面通过一个例子来说明如何操作。我们将hello.c编译成libhello.so。hell原创 2011-06-16 04:10:00 · 1219 阅读 · 0 评论 -
linux 获取线程ID的方法
http://blog.youkuaiyun.com/lb015331/archive/2011/06/20/6555435.aspx 在linux中没有像获取进程ID的方法(getpid()),所以我们需要自己定义,需要调用syscall(),因此要包含头文件syscall.h,具体的方法如下: #include #define gettid() sy原创 2011-06-20 01:25:00 · 4190 阅读 · 0 评论 -
动态库和静态库及obj文件
一、静态库和动态库的意义1. 动态函数库 动态库的名字一般是libXXX.so;动态函数库在编译的时候并没有被编译进目标代码中,当程序执行到需要调用的时候才调用该函数库(动态库)里的相应函数,因此动态函数库所产生的可执行文件比较小,但动态库没有被整合进目标程序,而原创 2011-07-11 07:48:12 · 1026 阅读 · 0 评论 -
常见warning的处理方法
最近,处理一个中间件中所有的warning,经过编译发现警告信息多如牛毛,而且这个中间件还是一个国内绝对一流的公司做的,要是一直这样下去,不知道中国的软件什么时候才能够达标啊!!! 下面对出现的警告简单的总结一下: 1、赋值类型不符,这也是最常见的;原创 2011-07-14 00:36:36 · 411 阅读 · 0 评论 -
用GDB调试程序
用GDB调试程序Home AcademicComputingGNU NotesDSEC ServerWild JournalPhotos说明 从优快云的网站上找到的GDB使用说明。原文标题:用GDB转载 2011-08-04 23:37:10 · 384 阅读 · 0 评论 -
Linux下core文件生成及调试的方法
在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。 1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。 2) 使用ulimit -c filesize命令,原创 2012-07-18 21:36:27 · 119 阅读 · 0 评论 -
epoll模型讲解
Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在 我用的2.6.15-25-386内核中,该值是1024,搜转载 2014-07-15 15:19:20 · 335 阅读 · 0 评论