Linux应用开发
文章平均质量分 71
wustdatamining
这个作者很懒,什么都没留下…
展开
-
cannot find gtk+/x11 2.4(or above version)!问题解决
不知道大家遇到没有,反正我用centos/rhel时,源码安装软件常遇到这样的问题: 今天决心给它解决,找了些资料,方法有二: 1)如果电脑是联网的,那太方便了,一条命令ok: yum install gtk2-devel 当然不忘root权限 2)如果非 1., 就只能自己一点点来了 freetype-devel原创 2012-04-29 08:39:02 · 543 阅读 · 0 评论 -
Linux中的几种I/O模型对比
在Unix/Linux下共有五种I/O模型,分别是:1)阻塞I/O2)非阻塞I/O3)I/O复用(select和poll)4)信号驱动I/O(SIGIO)5)异步I/O(Posix.1的aio_系列函数)这几个模型,有时还真把我给弄糊涂了,今天就特意来总结比较一下:阻塞I/O:应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。 如果数据没有准备好,一直等待原创 2012-05-27 19:23:15 · 268 阅读 · 0 评论 -
linux内核及驱动开发中有关__init,__exit和__initdata的用法
要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性或定义的函数或数,__attribute__主要用于改变所声明据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noreturn表示没有返回值、pure表明函数除返回值外,不会通过其它(如全局变量、指针)对函数外部产生任何影响。但这里我们比较感兴趣的是对代原创 2012-05-28 11:50:35 · 302 阅读 · 0 评论 -
讨厌"的Shell"可爱"的C----用C偷取Shell的结果输
我自己很喜欢用C语言,也羡慕小王老是说的那个shell这强大,那强大.一直不服他,凭啥这么说,有C语言强大么,C语言都能些操作系统系统,你Shell能吗?每次这个时候,小王就傻笑着对我摇摇头说: 说不过你,看你上次写过什么网卡什么的ping程序,这不,我电脑不能上网了,你用C写个程序ping一下子,我看看。我说那好办(心里想,我上次才写的博客,才分析的linux内核网络协议,这不是小case)原创 2012-05-28 10:45:24 · 536 阅读 · 0 评论 -
Linux多线程函数解析
Linux多线程函数用得比较多的是下面的3个:pthread_create()pthread_exit() pthread_join();它们都是在头文件之中。编译时需要加静态库-lpthread函数的说明如下:(一) pthread_create是UNIX环境创建线程函数 int pthread_create( pthread_t *re转载 2012-05-18 19:48:33 · 347 阅读 · 0 评论 -
基于linux的文件传输器实现详解----服务器端实现详解
继续前边上一节说过的内容,通过上节知道了,客户端的实现细节,现在来分析服务器端的实现细节。 上节的岔路口在于客户端告诉了服务器自己想要的文件以及服务器把文件内容写回给套接字通信信道那里,那我的内容就从这里继续开始。 首先,还是要从C语言的main()开始:int main(int argc,char**argv){ //设置一个socket地址原创 2012-05-26 20:58:24 · 447 阅读 · 0 评论 -
基于linux的文件传输器实现详解----客户端实现详解
我们天天用QQ传送文件,也习惯了用飞鸽传送文件。但里边的具体实现是怎么样的呢?其实,过程很多简单,相信大家都知道,我这里呢,就多此一举给大家详细分析分析,做个总结,也为网络程序的编写搭一个整体的框架。好了,现在开始,我会分为两个端来说明:客户端和服务器端。今天先说客户端,下次再说服务器端。 直接上源码,来的简单实用且讲解不费劲,文中的代码是完整的代码,行文中蓝色部分是说明部分,使原创 2012-05-26 20:38:30 · 495 阅读 · 0 评论 -
利用Shell脚本去掉C/C++源码中的注释
网络的方便,为我们提供了共享的平台。比如源码的共享,既然有了很多优秀的源码,稍加改造就能为我们所用,这也是许多开源软件的目的之一吧。好吧,改造这样的源码,第一个问题注释问题。因为源码中的注释时常并不是我们想要的注释,比如有的注释不全,注释不完善等等。总之,就一个目的:我要去掉源码中的注释。 另一方面,Shell脚本的强大,我就不用多说了。今天就来说说如何利用Shell脚本去掉C原创 2012-05-27 09:42:08 · 3587 阅读 · 2 评论 -
linux中创建多个子进程的方法
今天,师兄问我一个问题说:小涛啊,创建两个进程太简单了,怎么创建多个进程呢?我说那还不容易,看下边代码://省略必要头文件int main(){ pid_t pid[2]; int i; printf("This is %d\n",getpid()); for(i = 0;i < 2;i++ ){ if((pid[0] = fork()) <原创 2012-05-27 19:17:48 · 1035 阅读 · 0 评论 -
shell脚本中的几个括号总结(小括号/大括号/花括号)
Shell的强大是毋庸置疑的,方便了我们也迷惑了我们,比如这些杂七杂八的括号,一向自认聪明的我也傻傻分不清了,今天好哈的整理一下。 在Shell中的小括号,大括号结构和有括号的变量,命令的用法如下: 1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string},${var:=st原创 2012-05-27 19:07:58 · 873 阅读 · 0 评论 -
Eclipse下配置使用glib库的方法【linux版本】
Glib库是一个跨平台的C库,屏蔽了很多和平台有关的特性,同时简化了许多平台特有的开发特性。今天实践了一把,如何在Eclipse中添加glib开发支持的过程。使用之前当然要先安装好eclipse(c/c++版)和Glib了,接下来就是配置过程了。(1)新建工程。(2)右击工程,属性->C/C++ Build->Setting->Gcc c Compiler->Miscell原创 2012-04-29 09:02:39 · 1706 阅读 · 0 评论 -
make和makefile知识查漏补缺
1.make命令会试图创建列在makefile文件中的第一个目标,但如果想一次创建多个文件时,你可以利用伪目标all,比如最后的程序由二进制文件myapp和使用手册myapp.1,这样就可以语句all:myapp myapp.1。这时就可以一次创建myapp和myapp.1两个文件,所以再次强调,如果未指定一个all目标,则make命令将只创建它在文件makefile中找到的第一个目标。2原创 2012-04-29 08:44:47 · 356 阅读 · 0 评论 -
linux下真正的"伪随机数"
伪随机数,程序员哪个不知,哪个不晓。在linux下,设置好随机种子,然后调用rand()函数,但你真的知道了解它吗?其实你错了,这个"伪"确实够伪的,骗了很多人,不信,看如下代码:#include #include int main(void) { srand(100); printf("%d\n",rand()); return EXIT_SUCCESS;}原创 2012-04-29 08:50:24 · 989 阅读 · 0 评论 -
Linux内核的引导和启动过程
我的问题:从我们按下开机或者复位键到出现企鹅系统登录框,到开心看电影,玩游戏(不要说Linux下不行,你太OUT了)爽得连自己都忘了是谁的时候,想过这个系统是如何引导的吗?没有,没关系,是人哪还有不犯错误的,以前逃了那么多课,这不现在就开始补了,还真应了那就话:在外面混,总是要还的.. 先给大家来个图(为啥每个人都喜欢看图,又不是美女,嘿嘿)来总体认识一下Linux内核的引导过程原创 2012-05-27 14:52:11 · 603 阅读 · 0 评论 -
总结configure,pkg-config和PKG_CONFIG_PATH
我想大家都在linux下用源码安装过软件,源码安装软件的第一步是啥?下载源码,没错,小王,你太有才了.. 其实真正的第一步是./configure.似曾相识哦。没错,那么我也时常见过pkg-config及pkg_config_path.这几这到底啥关系呢,这就是今天的主题。 1.什么是configure configure会根据传入的配置项目检查程序编译时原创 2012-05-27 15:02:49 · 380 阅读 · 0 评论 -
Shell中的进度指示器
相信大家做shell脚本时,经常遇到耗费时间的问题,这时如果有一个进度指示器岂不更好,这在其他语言中很容易就实现了,在shell里也不难,看下边的几种方法: (1)使用一系列圆点来指示进度:利用每隔几秒就打印一个点来指示,看源码:#! /bin/kshwhile(true)do echo -n "." sleep 1done原创 2012-05-27 18:30:22 · 441 阅读 · 0 评论 -
C语言程序运行在嵌入式中的方式
我们所做的程序最后都是要放到设备中运行的,鉴于嵌入式设备的特殊性,它的程序在运行方式上和PC机上还是有一些不同,今天就来给大家总结一下: RAM调试运行:即在程序的调试阶段将主机的映像文件直接放置到目标系统的RAM中。此时,RAM既是程序的存储空间,也是程序的运行空间。 在嵌入式系统中,这是一种常用的调试方式(非通常的运行方式)。在通常的运行方式下,程序运行的原创 2012-05-28 18:25:01 · 2086 阅读 · 0 评论 -
Linux内核的编译
作为一名Linux系统工程师怎么可以不会编译Linux内核呢,就像当兵不会打仗。男人不会保护自己心爱的人一样,太丢人了.. Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显原创 2012-05-27 14:58:30 · 294 阅读 · 0 评论 -
修改posix msg queue的限制值
mqueue系列限制,限制msg条数,msg大小,queue个数。其中msg条数太小,对于有大量消息的系统,很容易导致queue满。如何修改呢?几个限制的缺省值:zhouhh@zhh64:~$ cat /proc/sys/fs/mqueue/msg_max10zhouhh@zhh64:~$ cat /proc/sys/fs/mqueue/msgsize_max8192z转载 2012-11-07 13:47:39 · 1251 阅读 · 0 评论