- 博客(104)
- 资源 (14)
- 收藏
- 关注

原创 linux系统数据文件和信息--unix环境高级编程读书笔记
linux中对文件passwd,group,utmp,wtmp的操作,以及uname函数和时间操作的一些介绍,总的来说,是对linunx中的一些系统文件操作的相关介绍。
2013-12-30 11:56:31
1726

转载 Linux驱动开发经典书籍
Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver 3rd Edition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上,更深入的东东只能靠我们自己摸索了。但万事总有一个开头,没有对Linux驱动整体框架的把握是很难做一个优秀的驱动开发者的。除了这本Jonathan Corbet,G
2013-12-28 11:32:02
3771
1

原创 在pcduino开发板上写驱动控制板载LED的闪烁
由于关于pcduino的资料比较少,所以这篇文章是参考了pcduino爱好者论坛的一篇教程《手把手教你用A10点灯》,并且系统的结合了linux驱动的开发步骤。读完这篇文章,你不但可以对pcduino开发板的硬件结构有所了解,更重要的是可以对linux的驱动开发步骤有一个系统的认识。我也是一个linux驱动的新手,所以,写的不对的地方,请大家指正。
2013-12-26 14:58:01
5614
2

原创 标准IO库--unix环境高级编程读书笔记
linux的标准io库操作,缓存操作,流操作,fopen,fgetc,fputc,fgets,fputs等函数的使用
2013-12-20 17:26:11
1798

转载 驱动程序的学习步骤
了解linux驱动程序技巧学习的要领很主要,学习linux操作系统时,你可能会遇到关于驱动方面的疑问,这里将介绍学习linux驱动程序的要领,在这里拿出来和大家分享一下。1.学会写基本的makefile2.编一使用程序,可以用makefile跑起来3.学会写linux驱动程序的makefile4.写一基本char驱动,makefile编译通过,可以insmod,lsmod,rmmo
2013-12-19 11:29:26
1536

原创 文件和目录(一)--unix环境高级编程
普通文件和目录linux中最多的两类文件,linux中一共有七种类型的文件,如下:1.普通文件2.目录3.字符特殊设备4.块特殊设备5.FIFO,又叫命名管道6.Socket,即套接字7.符号链接获取一个文件的详细信息可以使用stat函数组,stat函数组包括三个函数,它们的函数原型如下:int stat(const char* pathname,struct stat* buf)
2013-12-18 20:19:05
1570

原创 重写dup2函数
在unix环境高级编程的第三章中有一道题目是这样的:重写dup2函数,不能使用fnctl函数,要有规范的容错处理刚开始没有什么思路,后来在网上查了一下,发现大多数的处理都是,一直调用dup直到得到我们所想要的文件描述符为止,然后关闭不需要的文件描述符。代码如下:#include #include int mydup2(int fd,int fd2){ int fdtmp
2013-12-16 21:47:14
1168

转载 linux下截图软件 shutter
终端安装: sudo apt-get insatll shutter介绍shutter: 你是否听说过一款叫“Gscrot”的图形化截图工具,它是一款相当棒的截图软件,可以截窗口(包括边框)、控件、网页还有全屏幕。 现在,GScrot已经更名为Shutter,相对于前身Gscrot,Shutter变得更加强大! Shutter的工程主页是:http:/
2013-12-16 16:03:32
3823

转载 linux下好玩的命令
Linux下好玩的命令1、yes命令,输出很多个y,可以用来对付选择很多y/n的应用。2、banner命令,打印字符标题,就是用字符拼出大字来:3、ddate命令,把日历转换成其他的什么历:4、fortune命令,随机输出一句话,或者是一句英文名言,或者是一首唐诗宋词来,如果没有唐诗宋词,那就需要用fortune-zh5、cal 9 1752,打印日历,但是这个月非
2013-12-10 21:16:38
8150
2

转载 Linux命令中的常用符号解释(zz)
一、通配符:" * ” 、" ? ” 和DOS下一样,当我们不知道确切的文件名时,可以用通配符来进行模糊操作。“*”可以代表任意长度的任意字符,“?”代表一个任意字符。二、转义字符:" \ ” 和DOS的命名规则不同的是,通配符" * ”、" ? ”是可以在文件名中使用的。 如果要操作的文件名中包含有这些特殊符号,我们可以结合“\”来表达。下面是通配符和正则表达式的一个简短列
2013-12-07 17:30:09
2128

原创 小议C++中函数的参数的传递
c++中为每一个函数都维护了一个运行栈(活动记录),这个栈存储了与该函数相关的一系列信息,包括函数中声明的变量,传递给函数的实际参数,以及该函数的返回地址等,使用gdb调试器可以清楚的看到这一切。当调用发生时,该函数会将实际参数的值copy到运行栈,也就是常说的值传递。那么很显然的就是,如果我们在函数中改变的只是实际参数的值的拷贝,所以实际参数的值并没有发生变化。 那么,如果我们想要去
2013-12-05 22:12:07
1273

转载 如何编译Linux内核
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。本文将以RedHat Linux 6.0(kernel 2.2.5)
2013-12-03 15:43:25
2302

转载 sed用法及实例
1. 打印:p[root@TestAs4 chap04]# cat datafile 原文件northwest NW Charles Main 3.0 .98 3 34western WE Sharon Gray 5.3
2013-11-26 19:16:54
901

转载 Linux平台代码覆盖率测试工具GCOV简介
本博客http://blog.youkuaiyun.com/livelylittlefish 贴出作者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!Content 1. gcov是什么?2. gcov能做什么?3. 如何使用gcov?3.1 使用gcov的3个阶段(1) 编译(2) 收集信息(3) 报告3.2 gcov的选项(1) -a, --
2013-11-19 20:01:44
2412

转载 GDB调试手册
Linux 包含了一个叫gdb 的GNU 调试程序。gdb 是一个用来调试C和C++程序的强力调试器。它使你能在程序运行时观察程序的内部结构和内存的使用情况。以下是 gdb 所提供的一些功能:它使你能监视你程序中变量的值、它使你能设置断点以使程序在指定的代码行上停止执行、它使你能一行行的执行你的代码。在命令行上键入gdb并按回车键就可以运行gdb 了。(Windows需要安装MinGW或者CygW
2013-11-19 19:04:52
1847

转载 用gdb来学习c语言(linux环境下)
目录(?)[+]原文地址:https://www.hackerschool.com/blog/5-learing-c-with-gdb前几天在hacknews上看到这篇文章,发现它对C的初学者来说很有帮助。所以就尝试的翻译,粘贴在这里。限本人的英文水平和技术水平有限,有些地方可能翻译的不准,敬请见谅啊!--------------------------------------
2013-11-19 10:05:21
2415

转载 Linux下C语言的调试器 Gdb
调试是所有程序员都会面临的问题. 如何提高程序员的调试效率, 更好更快地定位程序中的问题从而加快程序开发的进度, 是大家共同面对的问题. 就如读者熟知的Windwos下的一些调试工具, 如VC自带的设置断点, 单步跟踪等, 都受到了广大用户的赞赏. 那么, 在Liunx下有什么好的调试工具呢? Gdb是一款GNU开发组织并发布的Linux下的程序调试工具. 虽然它没有图形化的友好界面
2013-11-19 09:33:00
2072

转载 [转]深入理解C/C++ [Deep C (and C++)]
作者:Rockics来源:http://blog.youkuaiyun.com/rockics/article/details/7015067说明:译自Deep C (and C++) by Olve Maudal and Jon Jagger,本身半桶水不到,如果哪位网友发现有错,留言指出吧:) 编程是困难的,正确的使用C/C++编程尤其困难。确实,不管是C还是C++,很难看到那种良
2013-11-18 16:25:31
2187

原创 实现冒泡排序和选择排序
1、冒泡排序 冒泡排序的思想就是:大数沉底,小数浮起。 它的做法是:对于n个需要排序的数,每次都把未排序的数中最大的数,放到它最终所在的位置。冒泡排序需要进行n-1趟。算法的C++语言实现如下:template void BubbleSort(elemType a[],int length){ //外层循环为n-1趟 for(int i=0;i<
2013-11-12 17:43:55
1281

原创 实现插入排序
插入排序的思想是增量法,它每一次都将一个待排序的元素插入到已经排序好的局部列表(数组)中。我们在玩牌时,就用到了插入排序。插入排序算法的伪代码如下:InsertionSort( A )for i<-2 to A.length do key <- A[ i ] j <- i - 1 while j>0 and A[ j ] > key do A
2013-11-12 16:53:44
1347

原创 如何退出while(cin>>value)的循环
今天看了一个程序,感觉很奇怪,如下:#include using namespace std;int main(){ int value; while( cin>>value ) { ; } cout<<"end input"<<endl; return 0;} 用户不断的
2013-11-07 19:48:19
5609

原创 arduino图形编程——ardublock
arduino是一款开源的硬件平台,具有丰富的IO功能,因而得到了很多人的喜爱。最近发现arduino有一款插件可以进行图形编程,和MIT的App Inventor有点类似。如下图: 安装ardublock的步骤很简单,如下: 1)首先你应该安装了arduino,ardublock只能依赖于arduino。 2)接下来下载ardublock,可以从htt
2013-11-07 15:38:42
12197

原创 ROS的学习(二十一)使用时间和TF
rosserial_arduino这个包,包括了可以在arduino上产生时间戳的一个库,这个时间和运行roscore实例的PC或者是平板上的时间是同步的。下面使用一个例子来演示一下如何访问时间,并且发布一个TF变换。打开一个终端,运行arduino IDE:arduino 选择File->Examples->ros_lib->TimeTF,打开的代码如下所示:/* *
2013-11-04 10:13:40
11841

原创 在linux终端下打开pdf文件
已经使用linux有很长的时间了,感觉linux的终端使用起来非常的方便。但是怎么在linux下用命令的方式打开pdf文件呢。我查了一下,打开pdf的命令是:evince [filename] 例如当前的目录下有一个hello.pdf文件,那么我们可以使用以下命令打开它:evince hello.pdf
2013-11-03 18:18:26
95930
5

原创 ROS的学习(二十)rosserial中的Publisher和Subscriber中的编程步骤
1.在一个话题上发布消息。 可以使用ros::Publisher类创建一个句柄来在一个话题上发布消息,应该首先创建一个publisher将要使用的消息,然后在setup函数中调用advertise。整个程序的结构如下:#include ros::NodeHandle nh;// before your setup() functionstd_msgs::String str
2013-11-01 17:09:57
10049

原创 ROS的学习(十九)用rosserial创建一个subscriber
在前面的一篇博客中,我们已经使用arduino创建了一个publisher节点,接下来将会创建一个subscriber,打开arduino IDE:arduino 选择File->Examples->ros_lib->Blink,就可以打开一个示例程序,代码如下:/* * rosserial Subscriber Example * Blinks an LED on c
2013-11-01 16:30:36
8868

原创 ROS的学习(十八)使用rosserial创建一个publisher
在arduino开发人群中,经常把源代码称为“sketch”,之后,我们就会使用这个惯例。打开一个终端,启动arduino:arduino 将arduino开发板连接到电脑的usb口,在arduino IDE中进行设置。选择Tools->Board,选择你所使用的arduino开发板的类型,笔者所使用的arduino开发板是arduino UNO。设置好开发板之后,继续选择To
2013-11-01 12:04:31
11572

原创 C语言命令行参数的使用
之前曾经使用过很多次c语言的命令行参数了,但是总是每次使用的时候都不太确定,需要重新查资料,这次来个总结。c语言的命令行参数非常简单,只需要一个简单的例子就可以说明:#include void main(int argc,char** argv){ printf("%d\n",argc); printf("%s\n",argv[0]); pr
2013-11-01 11:00:25
91035
12

原创 C++的学习(十一)继承
面向对象语言的核心就是继承与虚拟,首先总结一下C++中与继承有关的知识。如果你之前学过java或者其它的面向对象的语言,对继承的理解应该是很容易的。在C++中,一个类通过继承可以获得父类的所有成员,而它自己又相应的称为其父类的子类。我们也可以把父类称为基类,把子类称为派生类。 如果没有特别强调均为公有继承。 首先,我们已经知道一个类通过继承可以获得父类的所有成员。对于父
2013-10-31 20:07:24
2074

转载 解决ubuntu下arduino IDE的Serial Port无法选择问题
刚接触arduino,刚买了个arduino uno的板子(mango的兼容板 ,不得不说,质量还不错。),拿回来就开始折腾,开始在windows上折腾没有问题,近来在windows下工作越来越少,而今天开始在ubuntu上折腾,上来就碰到了一个问题。那就是arduino IDE的Serial Port无法选择,google后发现解决方案。原因就是在ubuntu下,预置安装了一个叫brltty
2013-10-31 16:30:27
15588
3

原创 ROS学习(十七)安装ARDUINO IDE使用rosserial
arduino和arduino IDE是非常好的和简单的可编程硬件工具,使用rosserial_arduino包,你可以使用arduino IDE直接使用ROS。rosserial提供了一个通信协议,它通过arduino的UART来工作。它允许arduino作为一个ROS的节点,可以直接发布和订阅ROS的消息,发布TF变换,以及获取ROS的系统时间。 如果你没有安装arduino ID
2013-10-31 15:23:17
20950
3

原创 ROS的学习(十六)用C++写一个简单的服务器(service)和客户端(client)
我们将创建一个服务器节点add_two_ints_server,它将会收到两个整数,并且返回它们的和。切换目录到之前建立的beginner_tutorials包下:cd ~/catkin_ws/src/beginner_tutorials 编辑src/add_two_ints_server.cpp文件:vim src/add_two_ints_server.cpp
2013-10-30 21:51:25
17134

原创 ROS的学习(十五)验证publisher和subscriber
在前面的两篇博客中我们用C++在ROS中创建了一个发布者和接收者,并使用catkin_make构建了新的节点,下面就需要验证一下,我们写的是否正确。 首先运行roscoreroscore 打开一个新的终端在里面运行talker:rosrun beginner_tutorials talker 看到的运行结果如下:[INFO] [WallTim
2013-10-30 21:01:11
7424
2

原创 ROS的学习(十四)用C++写一个简单的接收者
打开一个终端,进入到beginner_tutorials包下面:cd ~/catkin_ws/src/beginner_tutorials 编辑文件src/listener.cpp:vim src/listener.cpp 将下面的代码复制到文件中:#include "ros/ros.h"#include "std_msgs/String.h"/*
2013-10-30 20:49:26
21403
12
Accelerated C++中文版
2018-10-25
Webx3 Guide Book pdf
2018-09-26
java URLConnection全面解析(通俗易懂,包括cookie操作和上传文件)
2013-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人