Linux开发
文章平均质量分 72
fengxinze
这个作者很懒,什么都没留下…
展开
-
GCC版本问题引发的floating point exception
在Linuxg开发中经常遇到开发环境版本与程序运行时环境版本不一致,由于使用高版本的gcc glibc 编译后在低版本的glibc上运行导致,可能导致Floating Point Exception运行时错误。高版本的gcc在链接时采用了新的哈希技术来提高动态链接的速度,这在低版本中是不支持的。因此会发生这个错误。这是由于现在的gcc在link的时候默认会采用选项--hash-style=gnu,原创 2012-04-11 15:34:01 · 1733 阅读 · 0 评论 -
LD_ASSUME_KERNEL用途与用法
大牛Ulrich Drepper的文章,比较简单就不翻译了,见原文:http://www.akkadia.org/drepper/assumekernel.htmlExplaining LD_ASSUME_KERNELUlrich Drepper, 2004-5-12It is frightening how something as simple as the mecha转载 2011-11-06 13:04:53 · 3586 阅读 · 0 评论 -
如何正确使用环境变量LD_LIBRARY_PATH
本文来自CSDN博客,转载请标明出处。 英文原文: http://www.wiredrevolution.com/system-administration/how-to-correctly-use-ld_library_path LD_LIBRARY_PATH环境变量主要是用于指定动态链接器(ld)查找ELF可执行文件运行时所依赖的动态库(翻译 2011-11-06 12:44:38 · 16154 阅读 · 0 评论 -
用GDB调试程序【二】
转载自:http://blog.csdn.net/xjtuse_mal/article/details/1429297四、源代码的内存你可以使用info line命令来查看源代码在内存中的地址。info line后面可以跟“行号”,“函数名”,“文件名:行号”,“文件名:函数名”,这个命令会打印出所指定的源码在运行时的内存地址,如: (gdb) info line t转载 2011-08-31 00:06:39 · 965 阅读 · 0 评论 -
gdb调试工具简介【一】
转载自http://blog.csdn.net/xjtuse_mal/article/details/1430367一:列文件清单 1. List (gdb) list line1,line2二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。 如果你使用不带参数的转载 2011-08-31 00:01:10 · 814 阅读 · 0 评论 -
pthreads —— POSIX线程 7
原文:http://www.cnblogs.com/huyc/archive/2011/10/21/2219758.htmlNAME pthreads —— POSIX线程DESCRIPTIONPOSIX.1指定了一个接口集(函数,头文件)用于线程化编程俗称POSIX线程。单个进程可以包含多个线程,所有的线程都在一个程序中执行。这些线转载 2011-11-03 09:37:52 · 1178 阅读 · 0 评论 -
Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
原文:http://www.cppblog.com/bujiwu/archive/2009/01/25/72575.aspx对所有用户有效在/etc/profile增加以下内容。只对当前用户有效在Home目录下的.bashrc或.bash_profile里增加下面的内容:(注意:等号前面不要加空格,否则可能出现 command not found)#在PATH中找到可执转载 2011-11-03 11:30:03 · 796 阅读 · 0 评论 -
Linux上posix线程库实现原理讨论
原文:来自论坛一处讨论http://bbs.chinaunix.net/thread-497496-2-1.html说明一下,这个问题困扰我好长时间,因为正如使用C编程会希望了解进程的内存映象一样,使用POSIX线程库我们也会想去了解其实现的原理。目前只是查过一些资料,或许仍然有误解的地方,请大家继续指正 首先我们需要了解线程(threads)是个什么概念。在传统转载 2011-11-03 10:39:46 · 2011 阅读 · 0 评论 -
Linux 线程模型的比较:LinuxThreads 和 NPTL
原文:http://www.ibm.com/developerworks/cn/linux/l-threading.html简介: LinuxThreads 项目最初将多线程的概念引入了 Linux®,但是 LinuxThreads 并不遵守 POSIX 线程标准。尽管更新的 Native POSIX Thread Library(NPTL)库填补了一些空白,但是这仍然存在一些问题。本文为转载 2011-11-03 20:39:12 · 712 阅读 · 0 评论 -
GDB中应该知道的几个调试方法
原文:http://coolshell.cn/articles/3643.html七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来转载 2011-11-01 15:04:25 · 611 阅读 · 0 评论 -
深入理解软件包的配置、编译与安装
原文:http://lamp.linux.gov.cn/Linux/inside_config_compile_install.html深入理解软件包的配置、编译与安装作者:金步国版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形转载 2011-10-27 16:37:31 · 481 阅读 · 0 评论 -
Linux文件系统结构
Linux的体系结构,从WINDOWS转变过来的值得一读:http://www.pathname.com/fhs/pub/fhs-2.3.html转载 2011-10-28 11:07:47 · 400 阅读 · 0 评论 -
Linux下调用fork或system启动子进程的信号和资源释放相关问题
最近一段时间,公司的网管系统二期优化需要新增功能,实现对网管客户端程序进行保护的监控脚本的自动更新及保护进程的监控告警。网管客户端程序分为两部分:客户端GatherClient及保护进程gatherclient_daemon.py,其中保护脚本由Python编写,主要功能是实现客户端进程崩溃或意外被杀死后的自动恢复。目前网管系统支持Windows和Linux平台。下面主要讲述在Linux下实现遇到原创 2011-10-24 23:51:44 · 5860 阅读 · 0 评论 -
gdb调试工具简介【二】
转载自:http://blog.csdn.net/xjtuse_mal/article/details/1430369gdb 的常用命令 命令 解释 break NUM 在指定的行上设置断点。 bt 显示所有的调用栈帧。该命令可用来显示函数的调用顺序。 clear 删除设置在特定源文件、特定行上的断点。其用法为clear FILENAME:NUM转载 2011-08-31 00:03:11 · 617 阅读 · 0 评论 -
用GDB调试程序【一】
转载自:http://blog.csdn.net/xjtuse_mal/article/details/1429295GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所转载 2011-08-31 00:04:59 · 863 阅读 · 0 评论 -
Linux内存点滴 用户进程内存空间
关于Linux下内存管理的介绍,很不错。原文:http://www.perfgeeks.com/?p=770经常使用top命令了解进程信息,其中包括内存方面的信息。命令top帮助文档是这么解释各个字段的。VIRT , Virtual Image (kb)RES, Resident size (kb)SHR, Shared Mem size (kb)%MEM, Memor转载 2012-03-07 13:10:56 · 951 阅读 · 0 评论 -
文件锁与NFS文件锁
原文:http://www.cnblogs.com/zhenjing/archive/2011/07/04/filelock.html缘起因项目需要,自行设计一套通用的文件读写锁,要求该机制能用于本地文件系统和NFS文件系统。内核的文件数据结构内核中有3个数据结构和文件直接相关,分别是:file descriptor table, file table and i-转载 2011-12-26 21:02:35 · 2928 阅读 · 0 评论 -
UNIX上的C++程序设计守则( 信号和线程 上)
原文:http://d.hatena.ne.jp/yupo5656/20040712/p1翻译:http://www.cppblog.com/lymons/archive/2008/06/01/51838.htmlUnix 跟Windows 等那些” 对于开发者易于使用” 的OS 比起来,在信号和线程的利用方面有诸多的限制 。但是即使不知道这些知识就做构架设计和实现的情况也随处转载 2011-12-26 11:44:26 · 730 阅读 · 0 评论 -
进程互斥与竞态
原文:http://www.cnblogs.com/zhenjing/archive/2011/07/15/process_mutex_race.html缘起在linux编程中,经常有这样的要求:特定进程(尤其是daemon进程)有且只有一个,即特定资源只能由一进程拥有。问题是:如何保证特定进程间的“互斥”关系(只有一个实例)?当检测到“互斥(锁定)”时,其余进程可直接退出转载 2011-12-26 20:58:49 · 835 阅读 · 0 评论 -
UNIX上的C++程序设计守则( 信号和线程 下)
原文:http://d.hatena.ne.jp/yupo5656/20040712/p1翻译:http://www.cppblog.com/lymons/archive/2008/06/01/51838.html准则 4: 请不要做线程的异步撤消的设计l 线程的异步撤销是指:某个线程的执行立刻 被其他线程给强制终止了l 请不要单单为了让“ 设计转载 2011-12-26 17:42:49 · 2113 阅读 · 0 评论 -
程序的链接和装入及Linux下动态链接的实现(objdump)
原文:http://www.ibm.com/developerworks/cn/linux/l-dynlink/index.html链接器和装入器的基本工作原理一个程序要想在内存中运行,除了编译之外还要经过链接和装入这两个步骤。从程序员的角度来看,引入这两个步骤带来的好处就是可以直接在程序中使用printf和errno这种有意义的函数名和变量名,而不用明确指明printf和er转载 2011-11-08 17:40:56 · 1132 阅读 · 0 评论 -
实际用户ID,有效用户ID及设置用户ID
原文:http://blog.csdn.net/guosha/article/details/2679334 看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解。今天好好区分了一下这几个概念并总结如下。说白了这几个UID引出都是为了系统的权限管理。 下面分别用RUID, EUID,SUID来表示实际用户ID,有效用转载 2011-11-07 18:45:04 · 523 阅读 · 0 评论 -
Linux 的多线程编程的高效开发经验
原文:http://www.ibm.com/developerworks/cn/linux/l-cn-mthreadps/背景Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,转载 2011-11-07 18:28:03 · 564 阅读 · 0 评论 -
Linux多线程编程
原文:http://code.google.com/p/ldd6410/wiki/LinuxThread1. 线程的概念我们知道,进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,本节我们学习如何在一个进程的地址空间中执行多个线程。有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比如实现一个图形界面的下载软件,一方面需要和用转载 2011-11-07 15:49:47 · 1117 阅读 · 0 评论 -
信号安全跟线程安全函数背后本质
原文:http://blog.csdn.net/guosha/article/details/2966609 看UNIX编程相关的书在讲信号的时候会列出一大堆的保证信号安全的函数,在讲线程的时候也会例出一些不保证线程安全的函数。需要把它们都记下来吗?我觉得太可不必,也不科学,不了解根本你很可能自己写出一个不安全的函数,然后在信号处理里或是多线程程序里使用,出了问题却莫名其妙!转载 2011-11-07 12:12:11 · 669 阅读 · 0 评论 -
Linux 线程实现机制分析
原文:http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/index.html一.基础知识:线程和进程按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。无论按照怎样的分法,一个进转载 2011-11-06 16:38:48 · 597 阅读 · 0 评论 -
Linux的信号处理
原文:http://blog.csdn.net/guosha/article/details/2943615Linux为实现信号处理提供了比较多的接口,看似纷杂,但理清信号的关系后还是很有条理的。主要分为以下四组,怎么发送一个信号,收到一个信号后做什么样的处理,主动等待一个信号的发生,对特定信号只记录是否发生供以后再处理;四组的API如下(不考虑多线程):发送信号 kill, alar转载 2011-11-07 13:36:26 · 460 阅读 · 0 评论 -
排他性(不能重复启动)Server开发
排他性(不能重复启动)Server开发(deamon)—进程排他性(文件锁)—脚本排他性(fuser) 原文:1、进程排他性: 在Linux中进行Server开发:: 第一步、deamon() //调用deamon将进程转后台。 第二步、加文件写锁: fd = open转载 2011-10-23 17:17:56 · 976 阅读 · 0 评论 -
Linux下调用system()函数导致的问题
原文:http://blog.chinaunix.net/space.php?uid=20732057&do=blog&id=763540前一段时间用了system()函数调用脚本启动另一个进程,发现两个问题:1.执行killall命令杀新启进程时会连原进程一起kill掉.2.原进程打开的侦听端口,如果新启动的进程不退出无法释放(socket资源未释放).查看system(转载 2011-10-23 16:55:49 · 7108 阅读 · 2 评论 -
Linux下的定时器:alarm()与setitimer()
Linux下的定时器:alarm()与setitimer()http://bbs.phpchina.com/archiver/tid-98833.htmlLinux下的定时器有两种,以下分别介绍: 1、alarm 如果不要求很精确的话,转载 2011-10-10 20:47:13 · 913 阅读 · 0 评论 -
Linux下core文件产生的一些注意问题
前面转载了一篇文章关于core文件的产生和调试使用的设置,但在使用有一些需要注意的问题,如 在什么情况 才会正确地产生core文件。 列出一些常见问题:一,如何使用core文件1. 使用core文件在core文件所在目录下键入:gdb -c co原创 2011-09-22 13:28:58 · 34132 阅读 · 4 评论 -
通过 ulimit 改善系统性能
自:http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/概述系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是转载 2011-09-22 10:33:15 · 999 阅读 · 0 评论 -
Linux常用命令整理
Linux常用命令整理自:http://hi.baidu.com/donghaozheng/blog/item/cd8a9c584fbadbd49d8204e6.htmlsu 用户名 在不退出登陆的情况下,切换到另外一个人的身份如果用户名缺转载 2011-09-21 15:03:16 · 691 阅读 · 0 评论 -
例解 autoconf 和 automake 生成 Makefile 文件
例解 autoconf 和 automake 生成 Makefile 文件杨 小华 (normalnotebook@126.com), Linux 内核研究员苏 春艳, 在读研究生简介: 本文介绍了在 linux 系统中,通过 Gn转载 2011-08-25 00:51:57 · 1066 阅读 · 0 评论 -
从一道面试题谈linux下fork的运行机制
转自:http://hi.baidu.com/yuesoq520/blog/item/96fba8eb0632a234b90e2d48.html今天一位朋友去一个不错的外企面试linux开发职位,面试官出了一个如下的题目: 给出如下C程序,在linux下使用gc转载 2011-09-21 11:41:33 · 491 阅读 · 0 评论 -
linux内核设计与实现摘录及 Linux的内核源代码 的阅读
自:http://hi.baidu.com/donghaozheng/blog/item/67c79c45056b8831869473d2.htmlLinux的内核源代码 的阅读介绍Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,/usr转载 2011-09-21 11:37:03 · 876 阅读 · 0 评论 -
linux查看内核版本、系统版本、系统位数(32or64)
自:http://hi.baidu.com/addcn/blog/item/e4dc685891dfb8312a34f061.html1. 查看内核版本命令:1) [root@q1test01 ~]# cat /proc/version Linux version转载 2011-09-21 11:34:57 · 533 阅读 · 0 评论 -
strace用来监视“系统调用“
自:http://hi.baidu.com/donghaozheng/blog/item/2f4b8254f15360123b2935eb.htmlstrace用来监视“系统调用”,你不仅可以调试一个新开始的程序,也可以调试一个已经在运行的程序(把strace绑定到一个已有的转载 2011-09-21 11:30:49 · 590 阅读 · 0 评论 -
XShell下乱码的解决方法
转自:http://blog.csdn.net/dongzhiquan/article/details/6263711首先检查系统的language设置的是否是中文。 在终端下输入命令∶ # echo $LANG 若不是,则需要修改环境转载 2011-09-07 10:40:05 · 727 阅读 · 0 评论 -
VIM编辑代码时的一些技巧
转:http://blog.csdn.net/Sunboy_2050/article/details/5917817Vim替换与批量修改 1 简单替换表达式:%s/four/4/g“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示转载 2011-10-11 18:06:44 · 477 阅读 · 0 评论