Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux程序分析工具介绍—ldd,nm

Linux程序分析工具介绍—ldd,nm

本文要介绍的ldd和nm是linux下,两个用来分析程序很实用的工具。ldd是用来分析程序运行时需要依赖的动态库的工具;nm是用来查看指定程序中的符号表相关内容的工具。下面通过例子,分别来介绍一下这两个工具:1. ldd, 先看下面的例子, 用ldd查看cs程序所依赖的动态库:$lddcslinux-gate.so.1=>(0xffffe000)libz.so.1=>/lib/libz.so.1(0xb7f8c000)libpthread.so...
QT:窗口最小化时显示一个小浮标

QT:窗口最小化时显示一个小浮标

有些窗口在自身最小化时要在桌面上显示一个小浮标,让用户利用这个小浮标进行各种操作(例如迅雷的悬浮窗一样),我试着用QT实现一下这个功能。PS:本来以为这个功能很简单,却搞了我两个晚上,泪奔。。。思路:1:制作一个由一个小图标组成的,可点击,可拖动,背景透明的Widget2:重载主窗口(在此例子中是QLabel)的changeEvent(详情见代码)截图:(浅绿色的部分是桌面背景)主窗体:小浮标:代码:#include<QtGui> #inclu...
QT:在QTableView中使用各种自定义委托

QT:在QTableView中使用各种自定义委托

QT的MVC(View/Delegate)模型十分强大,可以利用各种控件来对表格的输入进行限制,不过我以前一直没有过,这几天研究了一下,写个小例子,希望大家喜欢。如果看不懂这个例子,请先看QT的自带例子:http://qt-project.org/doc/qt-4.8/itemviews-spinboxdelegate.html思路:1:为每一列定义委托:A:第一列是编号列,使用只读委托,令该列的单元格是只读的B:第三列是ID列,只能输入1-12个数字,利...
QT:封装一个简易的二维表类SimpleTable

QT:封装一个简易的二维表类SimpleTable

QT:我自己封装的一个简易的二维表类SimpleTable。在QT中,QTableWidget处理二维表格的功能很强大(QTableView更强大),但有时我们只想让它显示少量数据(文字和图片),这时,使用QTableWidget就有点不方便了(个人感觉)。所以我对QTableWidget再做了一次封装(SimpleTable类),让它在处理小型表格时更方便。代码很简单,要解释的就写在注释里面了,欢迎大家使用。如果大家发现这个类的BUG的话,欢迎提出,大家...
RHEL4 编译linux-2.6.27.8内核

RHEL4 编译linux-2.6.27.8内核

从昨天下午开始,编译一直到昨晚1:30,今天从早上编到现在,终于把这个移植过linux内核编译出来了,真的是各种坑~一次1小时~奔泪~刚才前一次用Ubuntu编,结果系统跪了~又要浪费时间重装。换了RH EL4,第一次遇到“WARNING: No module mptscsi found for kernel 2.6.27.8, continuing anyway“没有管,结果启动的时候进不去了,后来用旧的内核进去修改grub.conf:title Red...
Linux中的定时信号机制

Linux中的定时信号机制

前段时间在做一个项目的时候遇到了一点问题,做了一个安全方面的东西,主要目的是为了实现一段程序在规定的时间内完成,如果在规定时间内不能够完成相应的操作时,程序报警。对于这种方案其解决方案有很多,我想到了利用系统的时间函数来对时间进行控制,也想到了用已有的协议去完成,但这些方法都过于繁杂,而且不利于理解,在我之前的一篇博文中我曾提到过一个函数alarm,那么我就想到了可以利用Linux的信号机制来实现这一功能。我们都知道一旦在程序中对消息进行了设置后,我们便可...
Unix系统alarm函数详解

Unix系统alarm函数详解

Unix下编程很容易遇到这个函数,我们可以先看下这个函数的介绍,用man工具,man alarm。对于Unix系统的联机帮助中关于alarm函数的介绍如下:#include<unistd.h>unsignedintalarm(unsignedintseconds);它的主要功能是设置信号传送闹钟。其主要功能用来设置信号SIGALRM在经过seconds指定的秒数后传送给目前的进程,如果在定时未完成的时间内再次调用了alarm函数,则后一次定时器...
Linux ioctl函数详细说明

Linux ioctl函数详细说明

我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctlioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:int ioctl(int fd, ind cmd, …);其中fd...
Linux中mmap与munmap函数系统调用

Linux中mmap与munmap函数系统调用

内存映射函数mmap, 负责把文件内容或者其他对象映射到进程的虚拟内存空间, 通过对这段内存的读取和修改,来实现对文件的读取和修改,而不需要再调用read,write等操作。文件或者其他对象被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。用法:void*mmap(void*start,size_tlength,intprot,intflags, intfd,of...
FrameBuffer在Linux中的实现和机制

FrameBuffer在Linux中的实现和机制

Framebuffer对应的源文件在linux/drivers/video/目录下。总的抽象设备文件为fbcon.c,在这个目录下还有与各种显卡驱动相关的源文件。(一)、分析Framebuffer设备驱动需要特别提出的是在INTEL平台上,老式的VESA1.2卡,如CGA/EGA卡,是不能支持Framebuffer的,因为Framebuffer要求显卡支持线性帧缓冲,即CPU可以访问显缓冲中的每一位, 但是VESA1.2 卡只能允许CPU一次访问64K的地...
FFmpeg和SDL的多媒体编程

FFmpeg和SDL的多媒体编程

概要电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一连串的通过时间来串连的数据元素)。在流中的数据元素被称为帧Frame。 每个流是由不同的编码器来编码生成的。编解码器描述了实际的数据是如何被编码Coded和解码DECoded的,因此它的名字叫做C...
<< 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 >>