- 博客(31)
- 资源 (2)
- 收藏
- 关注
原创 嵌入式软件开发行业介绍和学习思路
就像昨天和同学烧烤啤酒时说的一样,一晃时间过得好快。从事linux环境下软件开发已经好今年了,虽然工作内容有衔接,思考的东西也是在不断深入,但总觉得和自己期望中的嵌入式软件开发有距离。工作的内容局限在某一个环节内,或者是某一段时间内也有涉及其他但不深入也不系统。长久自己总觉得在虚度,时间被丢进公司的工作内容的内耗中(和当前部门相关,也有主观的懈怠),所以想系统的梳理下,看看自己要怎么有个清晰的认识,这个认识包含知识,行业,也包含认识当前自己和期望中的自己的“差距”。分享下阅读的一篇博客:ht...
2020-06-13 20:12:03
493
原创 git/repo/gerrit 本地环境搭建(一)
一、需求:本地构建git/repo/gerrit 开发环境二、背景简介:1> git:一种分布式版本控制系统(DVCS)2> repo:google 为便于管理 Android 项目数目众多的 git repository 而开发的工具,是对git 命令进行封装,而非取而代之3> gerrit:代码审查工具三、git1> git 基础知识:了解分
2017-07-15 13:20:38
1949
原创 源码阅读与分析方法
参考:1. http://www.cnblogs.com/ToDoToTry/archive/2009/06/21/1507760.html2. http://www.xuebuyuan.com/475103.html3. http://blog.youkuaiyun.com/sky04/article/details/5770553 读什么?0. 前人总结的学习文档、笔记
2016-09-07 23:36:33
878
原创 vbox下虚拟机同宿主机互相ping,且虚拟机能访问网络的配置
背景:Windows下安装vbox,在vbox中创建Ubuntu 12.04 配置步骤: 1.实现 Ubuntu 同 windows 互相ping 1>在 虚拟机 Ubuntu 的 “设置”中选择“网络”,将 启用 “网卡1”,并将“链接方式”选择为“Host-Only”,其他默认即可;如图: 此时,查看 window
2015-06-10 23:19:05
10296
原创 动态链接库编译时的链接方式
最近在项目中遇到动态库相关的问题,情况还是 中间层的某个 liba.so库的编译中依赖了 下层libb.so库,liba.so的编译命令如下:gcc -fPIC -shared -o liba.so a.c ../../../libb.so 此处 liba.so的编译中对 libb.so的依赖没有使用 -L ../../../ -lb 的方式给出,而是直接用相对路径 ..
2015-04-28 14:33:15
1735
转载 LINUX下如何用GCC编译动态库
转自:http://www.linuxdiyf.com/viewarticle.php?id=181828本文主要解决以下几个问题1 为什么要使用库?2 库的分类3 创建自己的库或许大家对自己初学 linux时的情形仍记忆尤新吧。如果没有一个能较好的解决依赖关系的包管理器,在linux下安装软件将是一件及其痛苦的工作。你装a包时,可能会提示你要先装b包,
2015-04-28 14:09:35
522
转载 动态库的链接和链接选项-L,-rpath-link,-rpath
原文地址:http://my.oschina.net/shelllife/blog/115958链接动态库如何程序在连接时使用了共享库,就必须在运行的时候能够找到共享库的位置。linux的可执行程序在执行的时候默认是先搜索/lib和/usr/lib这两个目录,然后按照/etc/ld.so.conf里面的配置搜索绝对路径。同时,Linux也提供了环境变量LD_LIBRARY_PA
2015-04-27 11:30:25
562
转载 动态库依赖动态库是的链接方式
在项目代码中遇到这样的情况,上层动态库 a.so 的源码中 引用了下层动态库 b.so 中的函数,但是查看 a.so 的 makefile 发现,居然没有去 链接 b.so。后来百度后知道,虽然编译 a.so 时没有链接 b.so,但是在编译 依赖 a.so 的可执行程序时(不管是直接依赖 a.so 还是 间接依赖),必须链接 b.so。下面是百度的相关资料:转帖自:http://
2015-04-23 18:04:14
1569
转载 CUnit C单元测试轻量级框架
CUnit下载地址: http://sourceforge.net/projects/cunit/CUnit 在线文档帮助:http://cunit.sourceforge.net/doc/index.html 关于CUnit, 本文主要从介绍三方面的内容:1.CUnit的介绍。1.1 介绍如何使用CUnit。CUnit是一个对C语言编写的程序进行单元测试的框架,在线文档说
2015-04-20 19:04:52
5859
原创 《Unix-Linux编程实践教程》读书笔记(十一)
第十一章 连接到近端或远端的进程:服务器与Socket(套接字)1. 产品和服务的概念2. 一个简单的比喻:饮料机接口 提供一个接口,合成不同口味的饮料。这类似于Unix提供一个接口来处理来自不同数据源的数据。4种数据源:磁盘文件;设备;管道;Socket3. unix中使用的计算器:bc 1) bc与dc构成的客
2014-06-05 23:26:58
964
原创 《Unix-Linux编程实践教程》读书笔记(十)
第十章 I/O重定向和管道1. shell脚本中 # ls > my.file #who| sort > userlist 两个命令引出:如何将一个程序的结果输出到文件而不是屏幕?shell如何将一个程序的输出与另外一个程序的输入相连接?本章阐述进程间一种特殊的通信方式:重定向和管道。2. 每隔60秒查询当前登录
2014-05-29 23:30:22
1513
原创 《Unix-Linux编程实践教程》读书笔记(九)
第九章 可编程的shell、shell变量和环境:编写自己的shellshell本身就是一种编程语言,shell程序通常被称之为shell脚背。本章先学习shell的编程特征,然后再在第八章中编写的shell程序中加入一些特征,将if..then控制语句、局部变量和全局变量添加到要实现的shell程序中。1. 什么是以及为什么要使用shell脚本语言 shel
2014-05-29 23:28:22
1486
原创 《Unix-Linux编程实践教程》读书笔记(八)
第八章 进程和程序:编写命令解释器sh1. 进程=运行中的程序 程序是存储在文件中的机器指令的序列。执行程序是指把机器指令的序列载入到内存然后让处理器逐条执行。一个进程是程序运行时的内存空间和设置。2. 通过命令ps来学习进程 1) 进程存在于用户空间,用户空间是存放运行的程序和他们的数据的一部分内存空间。ps命令会列出用户
2014-05-28 21:53:43
1388
原创 《Unix-Linux编程实践教程》读书笔记(七)
1. 游戏同操作系统的相似之处:游戏涉及屏幕管理、时间、信号、同时做几件事情,这些情景在操作系统中十分常见。2. 屏幕编程:curses库 1) hello1.c、hello2.c程序中curses库函数的使用 2) curses同时维护着两份屏幕拷贝,一份真实屏幕拷贝,一份工作拷贝。Curses函数操作工作拷贝,调用refres
2014-05-21 21:12:06
2310
原创 《Unix-Linux编程实践教程》读书笔记(六)
1. 鉴于上一章中提到的关于 磁盘连接和设备连接的相同和不同,对这种双重性的处理,程序分为软件工具和针对特定设备编写的程序。针对特定设备编写的程序 并非是要编写其驱动程序,而是根据应用的需要 调整驱动程序的属性。2. 软件工具:不考虑 数据源来自哪里,对磁盘文件和设备文件不加区分。3. 针对特定设备编写的程序:为特定应用控制设备。其中用户程序是一种常见的与
2014-05-20 14:32:03
1040
原创 《Unix-Linux编程实践教程》读书笔记(五)
1. 本章只要通过对比学习设备与文件/目录连接之间的相似之处和不同之处,进而学习连接控制的知识,包括文件/目录连接和设备连接两个方面。2. 设备就像文件: 1) unix秉承一切皆文件的思想,设备也具有文件名 2) 设备与系统调用:设备支持与文件相关的系统调用 3) 例子:终端就像文件(重定向等操作在终端
2014-05-19 17:47:02
1272
原创 《Unix-Linux编程实践教程》读书笔记(四)
1. 在第三章中,在简单介绍目录树的基础上,结合之前who程序的编写,完成了ls程序的编写。本章则重点介绍文件系统的具体细节,并编写pwd程序。2. 从用户的角度看文件系统:介绍了与目录文件相关的多个shell命令,形成文件系统的感官认识。3. 文件系统的内部结构: 1) 第一层抽象:从磁盘到分区 2) 第二层抽象:
2014-05-19 14:32:57
1064
转载 shell特殊符号解释
在shell中常用的特殊符号罗列如下:# ; ;; . , / / 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `comman
2014-04-02 16:01:54
2106
原创 《Unix-Linux编程实践教程》读书笔记(三)
第三章 目录与文件属性:编写ls1. 在前两章中重点介绍了与文件读写有关的操作如何实现,本章主要介绍目录、文件的类型、如何获取文件相关的属性值。2. ls命令:可以列出给定目录的内容;显示给定文件的属性信息。ls的使用方法,各个常用命令行选项。理解ls包括三个方面:1) 如何分辨给定的目录还是文件2) 如何列出目录信息3) 如何读取并显示文件
2014-03-27 23:26:31
1344
原创 《Unix-Linux编程实践教程》读书笔记(二)
第二章 用户、文件操作与联机帮助:编写who命令1. 本章分析who命令,进一步学习文件操作(在第一章中已经初步使用文件操作相关函数)。除此之外,还将学习从Unix的联机帮助中得到有用信息。2. Unix系统的标准命令存放路径:/bin,/usr/bin, /usr/local/bin .当在终端使用某个标准命令时,系统会从以上路径搜索。将自己写好的可执行程序
2014-03-27 23:25:30
1686
原创 《Unix-Linux编程实践教程》读书笔记(一)
写在最前: 第一遍:零零散散的花了近两个月的时间读了本书的第一遍,这是一本很适合刚刚掌握一些计算机基础知识的人读的书。学习的思路非常明确,能做什么?怎么做?自己动手?三个方面符合认知顺序,由浅入深让人易于接受;而且每章的内容相对独立和简单,适合初次接触类Unix系统编程的人员逐个了解和实践。总之,从难以程度而言,也许这本书真的很适合作为UEAP的前奏。第一章 Un
2014-03-27 23:20:35
5766
转载 Linux 学习路线指南
很多同学接触Linux不多,对Linux平台的开发更是一无所知。而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段。下来我将会结合自己的几年的个人开发经验,及对 Linux,更是类UNIX系统,及开源软件文化,谈谈Linux的学习方法与学习中应该注意的一些事。 就如同刚才说的,很多同学以前可能连Linux是什么都不知道
2013-12-19 22:02:42
999
转载 linux programmer‘s life
Don’t try to “learn Linux”Pick a project and then do that project, learning Linux is a side effect.Build a web server/web siteBuild an asterisk phone systemBuild a home backup solution
2013-12-19 21:43:05
676
原创 linux下无法识别u盘
经常会遇到Linux下无法识别u盘的情况,这里做一下记录: 1.在虚拟机(vbox)中无法识别u盘 vbox和宿主机对u盘的使用时独占的(即在某一时间只有二者之一能访问u盘,而不能同时访问),遇到vbox中的linux无法识别u盘的情况时以下可以参考: 1>保证在宿主机下能对u盘进行访问,这样保证宿主机的u盘驱动没有问题 2>需要在vbox下
2013-11-12 10:52:12
18734
5
转载 typedef
定 定义typedef声明,简称typedef,为现有类型创建一个新的名字,或称为类型别名,在结构体定义,还有一些数组等地方都大量的用到。它有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法 。使用typedef可编写出更加美观和可读的代码。所谓美观,意指typedef能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性以及未来的可维护性。本文下面将竭尽全力来揭示typ
2013-10-18 17:04:22
664
转载 exit()和_exit()的区别
进程就好比人一样有其生命,我们通过fork()函数来创建一个进程,那么我们又是如何来中止进程呢。进程退出 1.在Linux中任何让一个进程退出 进程退出表示进程即将结束。在Linux中进程退出分为了正常退出和异常退出两种。1>正常退出 a. 在main()函数中执行return 。 b.调用exit()函数 c.调用_exit
2013-10-18 14:29:16
702
转载 linux任务前后台切换命令(bg和fg)
我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的任务。假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示(方括号中的是作业号):[1]+ Stopped /r
2013-10-18 10:50:11
767
转载 source insight快捷键及使用技巧
source insight快捷键及使用技巧 退出程序 : Alt+F4重画屏幕 : Ctrl+Alt+Space完成语法 : Ctrl+E复制一行
2013-10-16 15:59:38
574
转载 Socket阻塞模式和非阻塞模式的区别
简单点说:阻塞就是干不完不准回来, 非组赛就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你Copy过
2013-10-16 14:46:41
20563
转载 Linux Socket编程(不限Linux)
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型
2013-10-15 17:38:46
1063
转载 《调试九法-软硬件错误的排查之道》
1. 给出基本规则和切实在实际开发中应用规则很重要,“显然的事情"和"容易的事情"是不一样的。2. 关键是记住并且使用这些规则,规则的遵守会变艺术为科学,让潜不知不觉中遵守的规则以文字形式意义列举出来。3. bug分为开发过程中的避免、开发完成后的排查修复。...全文的学习笔记规则1:理解系统阅读手册:手册里有正确使用系统的方法。仔细阅读每个细节:出现问题的地方可能就在
2013-06-03 13:19:04
708
国防科技大学计算机网络试题
2010-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人