Linux编程
foxavideo
这个作者很懒,什么都没留下…
展开
-
vim命令速查
所有命令被总结在vim的这一张图片上:原创 2012-02-23 14:12:31 · 781 阅读 · 0 评论 -
GDB调试器的基本用法
为了让我们的程序能被GDB调试,在编译的时候需要加上编译选项 -g 例如:gcc -c -g main.c -o main.o1. 启动GDB:gdb main( 该文中所有的命令均在linux的终端上实验通过。)执行上面的命令要求当前的目录文main程序所在的目录,也可以不在main所在的目录,那样就需要指定main的路径,用绝对路径和相对路径都可以。2. 列出代码:l (这是小写的L)或者是list调试代码时, 我们肯定需要查看代码,有2中方式查看代码,一是在另外一个终端打开源代码。二是用GDB的l 命原创 2010-08-27 16:16:00 · 1053 阅读 · 0 评论 -
配置vim文本颜色
<br />因为之前一直在windows下面用vc+vc 助手开发,所以早就习惯了那里的语法加亮和自动补齐等,所以在vim开发有点不适应,因此想把开发环境稍作改动,让它跟vc接近些。<br /> <br />在我们讨论下面的内容之前请确保你的linux上已经安装好vim和相应的插件。如果没有安装请参看我的另外一遍文章:<br />安装linux开发环境(vim + ctags + taglist + cscope + cppcomplete + global )<br /> <br />让后你发现进入vim原创 2010-08-27 17:54:00 · 5697 阅读 · 0 评论 -
Makefile 点滴
1. 用一点+字符串定义伪目标,如.PHYNO:cleanclean: rm main.out上面这个伪目标就是删除main.out这个文件,记住rm前面一定是一个tab。 当你执行 make clean,就会删除这个文件。2. 几个重要内置变量$@ 代表当前规则的目标$$^ 代表所有的依赖文件原创 2011-10-27 21:52:41 · 700 阅读 · 0 评论 -
Windows和Linux动态库
摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了两种操作系统动态库技术,并给出了将Visual C++编制的动态库移植到Linux上的方法和经验。 1、转载 2011-10-23 08:59:03 · 899 阅读 · 0 评论 -
linux bash点滴
linux系统的Bash有很多种,常见的有bash, csh, ksh。 bash是大多数linux系统的默认的Bash。下面介绍都是bash的东西。1. # 为bash的注释标志符,windows下面是@。如#this is a simple bash file.2. #! 用来指定执行bash文件的程序。#!/bin/bash3. bash文件属性原创 2011-11-24 22:22:06 · 937 阅读 · 0 评论 -
windows vs linux 编程之区别汇编
本人是从windows转到linux的。因此学习linux编程时候,每学习一种思想或者概念都要跟windows对应的东西相比较,这样便于理解和记忆,也不至于搞混了。下面将陆续列出本人涉及到一些,随着学习的深入和工作经验的加深,下面的内容将逐渐扩充。1. 线程的ID. windows: 是全系统唯一的, 可参看msdn上面关于OpenThread的相关说明。 linux: 不是全系统唯一的,是进程唯一的。这个参看Addison Wesley的《Advanced Programming in the U原创 2010-08-20 16:17:00 · 999 阅读 · 0 评论 -
我的makefile之路-1
通过makefile可以一次性将所有相关的源文件编译生成目标文件.makefile是通过make命令来执行的. 在windows下面是通过nmake执行的. 这里只讨论前者.先写一个简单的makefile#This is my first my makefileCC=gccOBJ=codec.o format.o main.oEXEC=playerCLEANFILE=$(OBJ) $(EXEC)$(EXEC): $(OBJ) $(CC) -o $(EXEC) &(OBJ)codec.o: codec.原创 2010-07-05 19:44:00 · 1083 阅读 · 0 评论 -
c和c++中使用结构体的一点区别
从学校毕业以后,开发东西几乎全部是c++,今天在linux用c编程,发现关于结构体在定义和使用的上的一点区别。至于结构体在c++有类的特性,这里不做赘述,感兴趣的朋友可以自己查看c++ primer的相关章节。以前在c++中定义和使用结构体如下:// definationtypedef struct Student_t{ int num; char name[128];}Student, *PStudent;//or struct Student_t{ int num; char name[128]原创 2010-08-24 16:18:00 · 1146 阅读 · 0 评论 -
eclipse 安装cdt支持c/c++
http://max.berger.name/howto/cdt/ar01s04.jsp#installingcdt原创 2011-10-28 22:22:35 · 714 阅读 · 0 评论 -
linux安装man page
<br />好兴奋啊,今天终于可以用man来查看函数了,这个问题已经困扰了我好久好久了,花了不少功夫,为了解决这个问题,还特意加了linux 开发QQ群,结果也没有解决这个问题。<br /> <br />那么怎么来安装呢?其实非常简单(其实好多问题,就是有那么一心半点的技巧或者信息不知道,知道了,做起来非常简单,也许几分钟就搞定,但是可能之前花了几百个小时)。<br /> <br />先下载man page,这里提供一个我使用的连接:<br />http://www.kernel.org/pub/linux原创 2010-09-10 19:16:00 · 1596 阅读 · 0 评论 -
linux效率优于select的epoll模型
http://www.cnblogs.com/OnlyXP/archive/2007/08/10/851222.html原创 2010-09-24 23:21:00 · 1653 阅读 · 0 评论 -
real user ID,effective user ID,saved set user ID
<br />以下内容摘自:<br />http://hi.baidu.com/051156/blog/item/9813f7460452c6016a63e554.html<br /> <br />Unix中,每个进程都包含三个ID:real user ID,effective user ID,saved set user ID。<br /><br />real user ID表示的是实际上进程的执行者是谁。<br />effective user ID主要用于校验该进程在执行时所获得的文件访问权限,也就是说转载 2010-09-07 18:29:00 · 995 阅读 · 0 评论 -
并发服务器研究
<br />http://www.kegel.com/c10k.html原创 2010-09-28 17:41:00 · 838 阅读 · 0 评论 -
linux编译同时链接静态和动态库
其实,这以下文字主要是记录在linux下面编译程序的时候碰到的问题,当然如果有大侠路过,对这个问题有所了解,还忘指点一二。一个测试程序想同时链接静态库和动态库:dynamic.cpp 动态库代码如下;#include using namespace std;int math_sub( int a, int b ){ return a - b;}原创 2011-10-23 17:35:30 · 886 阅读 · 0 评论 -
linux+eclipse调试ffmpeg
虽然可以用GDB调试ffmpeg,但是对于习惯在IDE下面调试的人来说,还是很不习惯。那么怎样才能在IDE下面调试,又有什么IDE适合ffmpeg的调试呢。那就是eclipse.前提:1. 已经下载了ffmpeg源码并且已经编译通过。例如使用下面的选项编译:./configure --enable-memalign-hack --enable-stati原创 2011-11-06 08:52:35 · 2703 阅读 · 0 评论 -
linux + eclipse调试ffmpeg
记得为了调试,编译ffmpeg使用--disable-optimizations./configure --disable-optimizationshttp://www.linuxidc.com/Linux/2011-05/36286p2.htm原创 2011-10-28 23:14:30 · 864 阅读 · 0 评论 -
简明 Vim 练级攻略
以下文字转自:http://coolshell.cn/articles/5426.html vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用转载 2012-02-23 14:00:28 · 527 阅读 · 0 评论 -
vim编辑多文件
转自:http://vimcdoc.sourceforge.net/doc/usr_07.html#usr_07.txt*07.1* 编辑另一个文件在本章前,你都是为每一个文件启动一次 Vim 的。实际上还有其它办法。如下命令就可以在 Vim 中打开另一个文件: :edit foo.txt你可以用任何其它文件名取代上面的 "foo.txt"。Vim转载 2012-01-29 20:00:37 · 1431 阅读 · 0 评论 -
vim使用vimgrep在其他文件中或者文件夹中搜索字符串
在vim中提供2中方法来在其他文件或者文件夹中搜索字符串,第一种是vimgrep还有一种是grep。如果只是在当前打开的文件中查找字符串的,使用 :? 后面加上想要搜索的字符串就可以。这里要解决的是在别的文件中,也许这个文件还没有打开,或者需要在多个文件中操作,比如在当前文件夹下面所有.c的文件中查找,或者在莫个文件夹中查找。这些情况下,我们可以使用imgr原创 2013-06-21 16:01:08 · 2289 阅读 · 0 评论 -
vim点滴
学习vim的时候,需要掌握很多的命令,但是很难一下子把这么多的命令都记住,并且如果很长一段时间不用,就全忘了,所以这里把一些常用到的命令写下来。1. i - insert 在当前光标处插入2. I - insert 在行首插入3. a - append 在当前光标后插入4. A - append 在行尾附加5. v -原创 2012-01-18 01:12:04 · 754 阅读 · 0 评论 -
vim进阶进阶
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类史上最好转载 2012-04-15 17:59:20 · 765 阅读 · 0 评论 -
vim中快速的定位函数或者类定义
在Visual Studio在函数或者类定义之间切换,非常方便。vim也可以做到,只是多了一步骤。就是使用ctags这个在linux上默认是没有安装的,为了测试是否已经安装,你可以在命令行运行这个命令。没有安装的话,安装它debian系列:sudo apt-get install ctagsredhat 系列:sudo yum install c原创 2013-06-21 16:11:32 · 1767 阅读 · 0 评论 -
将VIM打造成php的开发环境
This isn’t a blog about why you should use Vim. That’s obvious. If it isn’t, read Why do those nutheads use Vi? Instead, this a tutorial about using Vim as a fully-fledged IDE, and specifically for转载 2013-08-30 14:45:41 · 1045 阅读 · 0 评论 -
配置vim
如果 ~/目录的下没有 .vimrc这个文件。可以先建一个。如何知道vim启动的时候加载的是哪一个配置文件呢?启动vim后可以使用如下的命令::e $MYVIMRC然后输入下面的内容:" 设置自动缩进set smartindent" 设置缩进set tabstop=4set shiftwidth=4set expan原创 2012-09-02 22:29:02 · 681 阅读 · 0 评论 -
vim切分窗口
转自:http://vimcdoc.sourceforge.net/doc/usr_08.html#usr_08.txt*08.1* 分割窗口打开新窗口最简单的命令如下: :split这个命令把屏幕分解成两个窗口并把光标置于上面的窗口中: +----------------------------------+ |转载 2012-01-29 19:55:05 · 1499 阅读 · 0 评论 -
vim使用
以下文字转自:http://www.cnblogs.com/gunl/archive/2011/08/15/2139588.html先稍为介绍一下 vim. vi 是 unix/linux 下极为普遍的一种文本编辑器, 大部分机器上都有. vi 有各种变种, 在不同的机器上常用不同的变种软件. 其中 vim 比较好用也用得比较广泛. vim 是 Vi IMproved 的缩写, 表示更好转载 2012-01-29 19:23:48 · 671 阅读 · 0 评论 -
我的makefile之路-2
继我的我的makefile之路-1之后,今天有机会在此基础上在写一篇比较深处的文字。现列出稍微负责的makefileCC=g++OUTPUTLIB=./libSRCDYNDIR=./dynSRCSTCDIR=./stc_OBJSDYN=add.o sub.o mult.oOBJSDYN= $(patsubst %, $(SRCDYNDIR)/%, $(_OBJ原创 2013-10-02 18:48:34 · 1918 阅读 · 0 评论 -
Autoconf和automake的使用
以下文字转自:http://www.yesky.com/120/1865620_1.shtml作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoc转载 2011-10-23 14:12:05 · 669 阅读 · 0 评论 -
gdb调试带参数的程序
有两种方式调试带参数的程序。1. run arg1 arg2或者是r arg1 arg22. set args arg2 arg2不要这两种方式能工作的前提是你已经用gdb [app]或者gdbload [app]的方式将程序加载。原创 2011-11-20 21:10:23 · 1050 阅读 · 0 评论 -
边缘触发(Edge Trigger)和条件触发(Level Trigger)
以下内容摘自网络: 边缘触发是指每当状态变化时发生一个io事件,条件触发是只要满足条件就发 生一个io事件。举个读socket的例子,假定经过长时间的沉默后,现在来了100个字 节,这时无论边缘触发和条件触发都会产生一个read ready notification通知应用程 序可读。应用程序读了50个字节,然后重新调用api等待io事件。这时条件触发的api会 因为还有50个字节可读从而立即返回用户一个read ready notification。而边缘触发 的api会因为可读这个状态没有发生转载 2010-11-05 10:24:00 · 1345 阅读 · 0 评论