
linux编程
wayz11
这个作者很懒,什么都没留下…
展开
-
主引导记录MBR详解
MBR分区表实验#以下内容为在虚拟机上的实验输出结果(黑色字体部分),红色文字为注释 #使用fdisk命令打印磁盘/dev/sdd的分区表[root@linux partitiontable]# fdisk /dev/sddCommand (m for help): pDisk /dev/sdd: 4139 MB, 4139778048 bytes#磁盘sdd有12原创 2012-01-30 10:57:34 · 6318 阅读 · 2 评论 -
MinGW配置pthread环境
MinGW下配置pthread环境原创 2013-11-20 16:40:31 · 9683 阅读 · 0 评论 -
Linux 共享库LD_PRELOAD环境变量
共享库转载器有许多可供配置的环境变量,比如我们前面介绍的LD_LIBRARY_PATH环境变量。本文只重点介绍LD_PRELOAD环境变量,因为这个环境变量体现了共享库一个非常重要的特性:共享库覆盖。下面是man手册中对于LD_PRELOAD环境变量的介绍: A whitespace-separated list of additional, user-原创 2013-03-19 13:59:52 · 6790 阅读 · 0 评论 -
Linux 共享库高级主题
ldd工具使用ldd工具用户可以查看可执行文件依赖的共享库,以及共享库的加载目录。可执行文件中包含了运行时所需的共享库列表。当可执行文件被运行时,系统负责装载所需的库文件。对《linux 动态库的创建和使用》生成的可执行程序使用ldd,输出结果如下:[wayz11@linux]$ ldd main linux-gate.so.1 => (0x00fea000)原创 2013-03-18 17:24:27 · 1374 阅读 · 0 评论 -
linux 动态库的创建和使用
简介动态库相比动态库有以下优点:由于不用静态连接到使用库的每个程序中,使用动态库更节省内存;升级方便,升级动态库,可以不用重新编译使用库的程序;注意:在x86架构下,使用动态库可能降低性能。创建和使用共享库我们使用上一篇《Linux 静态库的创建和使用》中的程序清单,只不过这次我们不生成静态库,而是生成动态库。同时为了方便我们使用Makefile文件。Makefile内原创 2013-03-18 10:10:01 · 1677 阅读 · 0 评论 -
Linux 静态库的创建和使用
简介在linux下库分两种:静态库和共享(动态)库。这两种库的主要不同在于连接到程序的过程。在编译程序时,连接器(ld)负责把程序中不同的模块连接起来,产生最终的可执行文件。静态库就是在这一过程连接到程序,成为程序的一部分。共享库与此不同,在编译时加入程序的只是一些钩子,在程序运行的时候才需要把共享库调入以便运行。创建和使用静态库创建静态库:通常使用ar程序把一些目标文件(.o原创 2013-03-15 10:20:32 · 1578 阅读 · 0 评论 -
互斥锁pthread_mutex_t的使用
1. 互斥锁创建 有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下: pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;在LinuxThreads实现中,pthread_mutex_t是一个结构,而PTHRE转载 2012-09-26 14:39:33 · 1177 阅读 · 0 评论 -
信号中断处理函数中的信号屏蔽
在一个信号中断处理函数中,会暂时屏蔽该信号,直到处理函数退出。如果我们没有为信号处理函数指定mask,此时如果收到另一个不同的信号,信号中断处理函数同样会被中断,转而执行新的信号中断处理函数。原创 2012-05-21 16:52:19 · 1460 阅读 · 0 评论 -
使用SecureCRT远程登录gcc提示信息中文显示乱码
使用SecureCRT远程登录到linux开发机,使用gcc编译时,警告错误等提示信息,中文显示乱码。查看LANG环境变量:[root@localhost ~]# echo $LANGzh_CN.UTF-8原来是中文,utf-8编码,于是修改SecureCRT设置:Options->Session Options->Apperance->Character encoding,改为UT原创 2012-04-19 10:43:48 · 1513 阅读 · 0 评论 -
C、C++易错知识点杂记(1)
const char *p、char const *p和char *const p有什么区别?前两个可以互换。它们声明了一个指向字符常量的指针(这意味着不能改变他所指向的字符的值);“char *const p”声明了一个指向(可变)字符的指针常量,也就是说不能修改指针。char *(*pfpc)();遵循“声明模仿使用”原则逐步分解声明;注:[ ]和( )比 * 的结合度更紧。原创 2012-04-11 15:16:23 · 845 阅读 · 0 评论 -
C、C++易错知识点杂记(2)
有两个int型变量a和b,不用“if”,“swith”,“?:”或其它判断语句找出a,b中较大的。int max = (a + b + abs (a - b))/2不用中间变量,交换int型变量a和b的值方案一a = a + b;b = a - b;a = a - b;方案二a = a ^ b;b = a ^ b;a = a ^ b;注:异或运算原创 2012-04-18 10:16:10 · 643 阅读 · 0 评论 -
Qt 4.8.0安装
在chroot环境中安装Qt 4.8.0编译报错:make[1]: Entering directory `/root/qt-everywhere-opensource-src-4.8.0/src/corelib'g++ -c -pipe -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -O2 -Wall原创 2012-02-27 16:24:25 · 9230 阅读 · 7 评论 -
chroot环境安装Qt 4.7.2
1. 解压到chroot环境目录[root@linux root]# time tar zxf /mnt/hgfs/hostshare/qt-everywhere-opensource-src-4.7.2.tar.gz -C .real 1m8.723suser 0m2.680ssys 0m41.992s2. 进入chroot环境config原创 2012-03-02 14:59:45 · 1327 阅读 · 0 评论 -
升级g++详细步骤
1、下载gcc源码对于只支持C++语言的编译,无需下载全代码包。可以只下载core源码和相应语言的源码包。wget ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.6.2/gcc-core-4.6.2.tar.bz2wget ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.6.2/gcc原创 2012-02-28 16:03:27 · 8045 阅读 · 0 评论 -
malloc() 和 free() 函数的陷阱
本文将简要介绍malloc和free两个函数,并详细说明这两个函数的实现。函数原型malloc用于动态分配内存。首先看malloc原型:#include void *malloc(size_t size );\\Returns pointer to allocated memory on success, or NULL on errormalloc返回void*类型的指原创 2012-02-06 15:35:57 · 6311 阅读 · 0 评论 -
U盘常用文件系统比较
引子拷贝一个大文件(大于4G)到8GU盘时,报存储空间不足,查看u盘属性,发现空间足够,原因是FAT32文件系统支持的最大单文件大小为4G。需要重新格式化u盘为NTFS格式,但发现居然木有NTFS选项,多了一个exFAT文件系统选项,这个还是头一次见,于是查了一下资料。现把几种U盘常用的文件系统做一下归纳比较。本文只介绍windows操作系统下文件系统,linux上使用的文件系统要多一些,原创 2012-02-02 15:42:19 · 8055 阅读 · 0 评论 -
Linux环境安装ACE 6.1.0
下载下载地址:http://download.dre.vanderbilt.edu/下载ACE-6.1.0.tar.bz2,这个软件包只包含ACE,不包含TAO等附加的东西,另外bz2压缩格式的源码包比较小,只有7.55M。解压mkdir ace-installtar jxf ACE-6.1.0.tar.bz2 -C ace-install配置首先使用命令#原创 2012-03-30 17:21:55 · 6327 阅读 · 1 评论