代码改变世界

随笔分类 -  Unix/Linux下编程

C++静态库与动态库

2013-10-16 20:18 by 吴秦, 194088 阅读, 收藏, 编辑
摘要: C++静态库与动态库 这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。 什么是库 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非... 阅读全文

【日常小记】统计后缀名为.cc、.c、.h的文件数

2011-03-29 16:50 by 吴秦, 8344 阅读, 收藏, 编辑
摘要: 在项目开发时,有时候想知道源码文件中有多少后缀名为.cc、.c、.h的文件。下面介绍Linux几种方法统计后缀名为.cc、.c、.h的文件数的方法。我以python3的源代码为例,python3的源码共有文件数:这段时间在学习python3,我就把它作为例子啦。感慨下:Python3跟Python2比变化了好多!有兴趣的同学可以从代码库中checkout代码研究研究,过程如下:(Python3使用git管理代码)mkdir py3k.git cd py3k.git git init git svn init svn+ssh://pythondev@svn.python.org/python/b 阅读全文

C/C++ Memory Layout

2011-03-07 18:29 by 吴秦, 12946 阅读, 收藏, 编辑
摘要: 为什么需要知道C/C++的内存布局和在哪可以可以找到想要的数据?知道内存布局对调试程序非常有帮助,可以知道程序执行时,到底做了什么,有助于写出干净的代码。本文的主要内容如下: 源文件转换为可执行文件 可执行程序组成及内存布局 数据存储类别 一个实例 总结 源文件转换为可执行文件 源文件经过以下几步生成可执行文件: 1、预处理(preprocessor):对#include、#define、#ifd... 阅读全文

【日常小记】linux中强大且常用命令:find、grep

2010-12-25 19:48 by 吴秦, 183227 阅读, 收藏, 编辑
摘要: 在linux下面工作,有些命令能够大大提高效率。本文就向大家介绍find、grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们。本文结构如下:find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集)grep命令的常用选项及实例 1、find命令find命令是一个无处不在命令,是linux中最有用的命令之一。find命令用于:在一个目录(及子目录)中搜索文件,你可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文件。下面就通过实例来体验下find命令的强大 阅读全文

Linux Socket编程(不限Linux)

2010-12-12 21:58 by 吴秦, 376899 阅读, 收藏, 编辑
摘要: “一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?3、socke 阅读全文

(unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误

2010-12-04 15:49 by 吴秦, 24238 阅读, 收藏, 编辑
摘要: 一个困扰我两天的问题,Google和Baidu没有找到解决方法!此文为记录这个问题,并给出原因和解决方法。1、Unix domain socket简介unix域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法,所用API于在不同主机上执行客户/服务器通信所有的API(套接字API,如AF_INET、AF_INET6等类型的API)相同。unix域协议可以视为是进程之间本地... 阅读全文

Linux多线程编程(不限Linux)

2010-10-30 20:58 by 吴秦, 100314 阅读, 收藏, 编辑
摘要: ——本文一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)有一int型全局变量g_Flag初始值为0;2) 在主线称中起动线程1,打印“this is thread1”,并将g_Flag设置为13) 在主线称中启动线程2,打印“this is thread2”,并将g_Flag设置为24) 线程序1需要在线程2退出后才能退出5 阅读全文

解决wubi安装ubuntu时要下载系统映像文件问题

2010-05-02 12:06 by 吴秦, 29841 阅读, 收藏, 编辑
摘要: 引言四月二十九号——让我等待很久的一个日子,ubuntu 10.04就是在这天正式发布的,我想有很多人跟我一样一直在等官网挂出下载链接的那刻。读大学时曾经在官网订过ubuntu光盘,要用英文写的,还以为会寄不到,谁知大概一个月时间我就收到了,自此就跟ubuntu接下了不解之缘,在此之前用过red hat 9.0(它永远的经典,我想很多人都是用这个进入linux大门的)、re... 阅读全文