linux
文章平均质量分 65
扎扎实实写代码
勤勤恳恳打基础,扎扎实实写代码!
展开
-
Linux Makefile 详细语法
引自:http://blog.163.com/bical@126/blog/static/479354942013411114118416/很好的Makefile 文章。zhaodc:这篇文章从一个实例切入,在有些地方比较好理解。能让人看懂就是好文章。内容有点长,但是值得去深读。概述——什么是makefile?或许很多Winodws的程序员都不知转载 2016-05-30 20:59:42 · 581 阅读 · 0 评论 -
linux-muduo线程通信eventfd
eventfd 在内核版本,2.6.22以后有效。查看内核版本可以用命令 uname -r 在看muduo源码时,项目中使用eventfd机制实现线程间的唤醒(通知)。觉得效率比较高,所以拿来学习下。其也可以实现父子进程间的通信。 首先使用: man eventfd name:eventfd–创建一个用于事件通知的描述符SYNOPSIS:#include<sys/eventfd.h> in原创 2017-04-17 20:47:30 · 1505 阅读 · 0 评论 -
深度理解IO模型-同步异步,阻塞非阻塞
一、基础知识: 我们都知道linux将所有的设备都看作文件,那么我们对linux的设备操作都可以看做是文件操作.我们打开一个文件的时候内核会返回给我们一个文件描述符,那么我们对文件的操作都是文件描述符来操作的. 系统调用是如何完成IO操作的呢?网上有一个系列文章讲解一次IO操作的真实过程<一个IO的传奇一生>. linux将内存分为内核区,用户区; linux内核给我们管理原创 2017-03-26 17:31:54 · 500 阅读 · 0 评论 -
linux-编译和添加库和头文件路劲
一、创建动态库和静态库 从源代码到可执行程序,通常要经过最重要的两大步是:编译,链接。编译就是将源文件生成中间文件的过程,在linux下就是生成 .obj 文件。链接就是用链接器将,这些个中间文件有序地”糅合“在一起,构成一个可执行文件。通常,一个.c文件或者.cpp源文件编译后,就会对应生成一个.obj文件。 那么库文件是什么东西呢?其实库文件就是将这些中间文件.obj进原创 2017-03-05 16:44:38 · 2016 阅读 · 0 评论 -
使用GDB程序调试从初级到高级(七)
转自:http://blog.csdn.net/haoel/article/details/2885 改变程序的执行 ———————一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。一、修改变量值修改被调试程序运行时的变转载 2017-02-08 19:47:30 · 325 阅读 · 0 评论 -
使用GDB程序调试从初级到高级(六)
转自:http://blog.csdn.net/haoel/article/details/2884 七、设置显示选项GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如: (gdb) f #0 set转载 2017-02-08 19:43:53 · 340 阅读 · 0 评论 -
GDB程序调试从初级到高级(五)
转自:http://blog.csdn.net/haoel/article/details/2883 查看运行时数据 ———————在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是:print <expr>print /<f> <expr> <expr>是表达式,是你所调试的程序的语言的转载 2017-02-08 19:41:32 · 244 阅读 · 0 评论 -
GDB程序调试从初级到高级(四)
转自:http://blog.csdn.net/haoel/article/details/2882 查看栈信息 —————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令: backtrace转载 2017-02-08 19:36:26 · 250 阅读 · 0 评论 -
GDB程序调试从初级到高级(三)
转自:http://blog.csdn.net/haoel/article/details/2881 四、维护停止点上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用delete、clear、disable、enable这几个命令来进行维护。 clear 清除所有的已定义的停止点。 clear <f转载 2017-02-08 19:32:21 · 356 阅读 · 0 评论 -
GDB程序调试从初级到高级(二)
转自:http://blog.csdn.net/haoel/article/details/2880 GDB的命令概貌 ——————— 启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示:/home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free Softw转载 2017-02-08 19:16:42 · 256 阅读 · 0 评论 -
GDB程序调试从初级到高级(一)
转自:http://blog.csdn.net/haoel/article/details/2879用GDB调试程序 GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有转载 2017-02-08 19:12:10 · 259 阅读 · 0 评论 -
Linux下一个简单守护进程的实现 (Daemon)
转自:Cise.ufl.edu/~sahni/ 在Linux/UNIX系统引导的时候会开启很多服务,这些服务称为守护进程(也叫Daemon进程)。守护进程是脱离于控制终端并且在后台周期性地执行某种任务或等待处理某些事件的进程,脱离终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的中断信息所终止。创建守护进程的一般步骤:(1) 创建子进程,退出父进程 为了脱离控制转载 2017-02-07 20:41:35 · 1838 阅读 · 0 评论 -
pthread_cleanup_push/pop成对出现的意义
http://blog.csdn.net/yangyiwei524386/article/details/21821095 线程可以安排它退出时需要调用的函数,这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说它们的执行顺序与它们注册时的顺序相反。 pthread_cleanup_push来注册清理函数rtn,这个函数有一个参数arg。在以下三种情形之原创 2016-12-13 13:05:50 · 523 阅读 · 0 评论 -
同步与异步和阻塞与非阻塞
作者:严肃 链接:https://www.zhihu.com/question/19732473/answer/20851256 来源:知乎 著作权归作者所有,转载请联系作者获得授权。阻塞”与”非阻塞”与”同步”与“异步”不能简单的从字面理解,提供一个从分布式系统角度的回答。 1.同步与异步 同步和异步关注的是消息通信机制 (synchronous communication/ async转载 2016-11-12 20:45:07 · 177 阅读 · 0 评论 -
tinyhttpd 学习笔记
参考文档:http://blog.csdn.net/jcjc918/article/details/42129311 0.简介:tinyhttpd 是一个不到 500 行的超轻量型 Http Server,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。 看完所有源码,真的感觉有很大收获,无论是 unix 的编程,还是 GET/POST 的 Web 处理流程,都清晰了不少。废转载 2016-10-15 14:53:58 · 971 阅读 · 0 评论 -
回车和换行在不同操作系统的应用
'\r'是回车,前者使光标到行首,(carriage return)'\n'是换行,后者使光标下移一格,(line feed)\r 是回车,return\n 是换行,newline对于换行这个动作,unix下一般只有一个0x0A表示换行("\n"),windows下一般都是0x0D和0x0A两个字符("\r\n"),苹果机(MAC OS系统)则采用回车符CR表示下一行(\r)Unix转载 2016-10-17 09:54:42 · 1863 阅读 · 0 评论 -
树莓派 3B 入手 基础篇(一)
树莓派3B 已经到手玩了好几天了,之前一直用的飞思卡尔的arm9开发板,两者相比真心觉得树莓派真是太牛逼了。废话少说,今天就是要把之前对树莓派学习做一个总结;(一)、 拿到开发板第一件事就是想要让开发板跑起来,因为官方树莓派的开发板是裸机,需要偶们自己烧系统; 准备: 树莓派开发板,一个系统镜像文件,8G 及以上sd卡 1). 树莓派系统官网下载地址: h原创 2016-07-15 14:02:16 · 45390 阅读 · 1 评论 -
unix select() 任务调度机制分析
参考资料:【1】Unix环境高级编程(第二版)P381 14.5.1 select和pselec函数; 【2】 selec函数详细用法解析 http://blog.chinaunix.net/uid-21411227-id-1826874.html 最近在学习live555,发现live555 server的任务调度主要是通过selec原创 2016-06-17 09:53:27 · 407 阅读 · 0 评论 -
linux服务器之间传输文件的四种方式
转自:http://www.jb51.net/article/82608.htm本文为大家分享了linux服务器之间传输文件的四种方式,供大家参考,具体内容如下 1. scp 【优点】简单方便,安全可靠;支持限速参数 【缺点】不支持排除目录 【用法】 scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。转载 2017-06-08 11:58:22 · 38614 阅读 · 0 评论