2013年3月29日

转载:Linux下的 .o、.a、.so文件

摘要: 工程里很多函数只是有声明,找不到实现的代码。因为那些实现代码已经编译成库所以看不见,我所看见的全是一堆头文件..o、.a、.so文件都是Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据。优点:程序模块化,容易重新编译,方便升级。分类:静态函数库(对应.a文件)、 共享函数库(对应.so文件,类似于Windows的dll文件)、 动态加载函数库(对应.o文件,相当于Windows里的.obj文件)静态函数库特点:实际上是简单的普通目标文件的集合,在程序执行前就加入到目标程序中。优点:可以用以前某些程序兼容;描述简单;允许程序员把程序link起来而不用重新编译代码,节省了... 阅读全文

posted @ 2013-03-29 16:40 liyanfasd 阅读(183) 评论(0) 推荐(0) 编辑

Fedora 10中Qt4 Designer显示乱码问题

摘要: 最近在学习嵌入式Linux的Qt,在WMware上装的Fedora 10,在装Fedora 10时几乎将所有的软件rpm包都安装上了,可是在用Qt4 Designer时,发现其显示的太不正常(没有菜单栏、属性窗口等),点击Application->Programming->Qt4 Designer显示效果如下:上网search了一下,原来是字库捣的鬼,那就修改一下显示字体吧。按照网上说的,在终端输入qtconfig-qt4,将Fonts标签页的Family改成Bitstream Charter,然后重新启动Qt4 Designer,发现还是不显示菜单栏,看来是字体没有修改成功。这种 阅读全文

posted @ 2013-03-29 15:29 liyanfasd 阅读(283) 评论(0) 推荐(0) 编辑

2013年3月24日

Linux之设备文件

摘要: 设备文件时一种特殊的文件,是操作系统和外部设备进行通信的中介者,设备文件均放在/dev目录下设备文件的类型:字符设备文件和块设备文件 字符设备文件:无缓冲顺序读。字符设备文件与设备之间传输数据时,按照FIFO的顺序读写数据。 块设备文件:有缓冲随机存取。先从内存的缓冲区中读写数据,而不是直接传送数据到物理磁盘,这种方式能有效的提 高磁盘的I/O性能。设备号:主设备号和次设备 mknod命令可以创建设备文件,格式为:mknod device_file_name type major minor device_file_name:创建的设备文件的名字 type:b代表块设备文... 阅读全文

posted @ 2013-03-24 21:42 liyanfasd 阅读(155) 评论(0) 推荐(0) 编辑

2013年3月11日

对fork函数的疑惑,求解!

摘要: 初学Linux,对Linux不甚理解,望高手不惜赐教。“unix编程圣经”《unix环境高级编程》讲到,当调用fork函数后,子进程会拷贝父进程除正文段的所有资源,即拷贝已初始化的数据段、.bss段、堆、栈、命令行和环境变量。小弟在main函数外定义一个int型变量val=5,程序如下: 1 #include <unistd.h> 2 #include <stdio.h> 3 4 int val = 5; 5 //int *ptr = &val; 6 int main(int argc,char *argv[]) 7 { 8 int pid; 9 if((pid 阅读全文

posted @ 2013-03-11 21:36 liyanfasd 阅读(170) 评论(0) 推荐(0) 编辑

2013年1月5日

$(@:_config=)诠释

摘要: 最近研究u-boot-1.1.6顶层的Makefile时,对其中的$(@:_config=)不甚理解,在网上搜了关于这句话的诠释,不是很满意,相信很多学习ARM开发的童靴也很是迷惑,现在把我对这句话的理解写出,仅供参考,如有不妥之处,敬请指正。 格式为$(var:str1=str2)或者${var:str1=str2}是指,将变量var中的所有以str1结尾的字符用str2替换。str1必须是结尾字符(若var中有多个变量构成,且变量之间用空格连接,空格前的变量若也是str1结尾也符合条件)。举个例子var:=file1.c file2.c file3.c, 则$(var:.c=.o)的... 阅读全文

posted @ 2013-01-05 21:00 liyanfasd 阅读(473) 评论(0) 推荐(1) 编辑

2012年11月7日

MSSQL数据库中row_number()函数

摘要: row_number()函数是数据库中使用频率较高的函数,函数功能是给对查询出来的每一条记录生成一个序号(序号是从1开始递增)。它的主要应用是对查询的记录进行分页操作。 函数语法:select row_number() over(order by 列名) as 别名,* from 表名 下面俩如分别是未使用row_number()前和使用row_number()后的效果。 简单的分页程序(带参数的存储过程)如下: create proc getPagesBook @index int as begin select * from (select row_number() o... 阅读全文

posted @ 2012-11-07 15:43 liyanfasd 阅读(487) 评论(0) 推荐(0) 编辑

2012年6月7日

C#编写socket客户端,服务器断开连接时客户端报异常

摘要: 经过调试发现,服务器断开连接时,会发送字节长度为0的数据,进而让对数据进行处理。然而处理数据的方法没有对收到长度为0的字节做处理,导致程序抛出异常。解决方法就是对收到长度为0的数据进行相关处理即可。 阅读全文

posted @ 2012-06-07 11:29 liyanfasd 阅读(1167) 评论(0) 推荐(0) 编辑

2012年5月23日

浅析23种软件设计模式

摘要: 23种软件设计模式:1、工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 2、建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。 3、工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产 阅读全文

posted @ 2012-05-23 08:40 liyanfasd 阅读(227) 评论(0) 推荐(0) 编辑

2012年5月20日

C语言获取集合幂集

摘要: 思路:假设有集合中有3个元素,则该集合的幂集有23=8个子集元素 : 1 2 3二进制:0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1若二进制数组中对应的是1 ,则输出该元素;若二进制数组中对应的是0 ,则不输出。程序如下: 1 #include "stdio.h" 2 3 void main() 4 { 5 int i,j,k; 6 int a[3]={1,2,3}; 7 int b[3]={0,0,0}; 8 for(j=0;j<8;j++) 9 {10 ... 阅读全文

posted @ 2012-05-20 22:15 liyanfasd 阅读(940) 评论(0) 推荐(0) 编辑

2012年5月11日

C#获取本机IPv4地址

摘要: 本地计算机IP地址有IPv4和IPv6,获取IPv4的方法如下: 1 public IPAddress GetLocalIPv4Address() 2 { 3 IPAddress localIP = null; 4 //获取本机所有的IP地址列表 5 System.Net.IPAddress[] addressList = Dns.GetHostAddresses(Dns.GetHostName()); 6 foreach (IPAddress item in addres... 阅读全文

posted @ 2012-05-11 12:01 liyanfasd 阅读(462) 评论(0) 推荐(0) 编辑

导航