自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AnSwEr不是答案

http://answerywj.com/

  • 博客(118)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux下C程序的反汇编

Linux下C程序的反汇编前言:本文主要介绍几种反汇编的方法。gccgcc的完整编译过程大致为:预处理->编译->汇编->链接前三个步骤分别对应了-E、-S、-c三个选项。今天我要介绍的第一种方法就是使用-S这个选项。源程序main.c:/************************************************************************* > F

2015-12-08 21:07:22 35442 8

原创 Mushroom Introduction

Mushroom Introduction前言:本文主要介绍Mushroom系统底层各个模块,帮助读者尽快熟悉本系统。1. 系统概述main函数的设计思路是,一个main函数的主线程负责传感器数值的采集以及发送,同时单开一个用于控制器的控制线程。在控制线程中,接收上层数据中心发送的指令,这个指令包含了控制器号以及即将修改的控制器状态。我们使用controller_set()来设置控制器状态,同时返回

2015-11-18 16:53:05 554

原创 Mushroom User's Manual

Mushroom User’s Manual前言:本文主要说明Mushroom系统底层模块的调试与使用。1. 本地1.1 编译修改Makefile文件如下:CC=gcc#CC=arm-linux-gccSRC = main.call: $(CC) -g $(SRC) fx-serial.c socket_client.c proto/header.pb-c.c proto/getdat

2015-11-18 09:56:01 436

原创 Crontab学习笔记——Linux计划任务

Crontab学习笔记——Linux计划任务简介Crontab是一个用于设置周期性被执行的任务的工具。主要由CronD这个系统服务、配置文件和crontab配置工具组成,会每分钟从配置文件刷新定时任务。安装配置本服务器为Centos 64位系统,已经缺省安装。安装前先检查:crontab -l #是否有计划任务列表service crond status #是否启动服务安装:sudo yum in

2015-10-27 17:21:59 954

原创 Python学习资源

Python学习资源这里总结一些自己学习Python时的一些资源。由于正在学习中,所以会不断更新的。我的学习代码我的Blog视屏教程官方文档中文教程反馈与建议微博:@AnSwEr不是答案github:AnSwErYWJ博客:AnSwEr不是答案的专栏

2015-10-26 14:45:43 554

原创 C语言生成随机数

C语言生成随机数rand函数函数介绍rand()函数是产生随机数的一个随机函数:#includeint rand(void);返回值: rand()返回值为一随机数值,范围在0至RAND_MAX 间(RAND_MAX定义在stdlib.h,其值为2147483647)。 注:在调用此函数前,必须先利用srand()设好随机数种子。如果未设随机数种子,rand()在

2015-10-24 21:10:40 50995 1

原创 C语言配置文件解析库——iniparser

C语言配置文件解析库——iniparser前言:在对项目的优化时,发现Linux下没有专门的供给C语言使用的配置文件函数,于是搜索到了iniparser库,可以像那些面向对象语言一样,使用ini文件进行参数配置。介绍iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。iniparser库有三种下载方式: 1. 官方网站 2. 我的github 3. 我的网盘

2015-10-22 21:16:49 15818 4

原创 C语言实现优先级队列——priqueue

C语言实现优先级队列在回顾一个学长的项目时,发现他在串口的多线程操作时不是单纯的使用互斥量在读写操作时来共享串口,而是使用了一个优先级队列,在共享串口的基础上,可以设定读或写命令的优先级来决定命令执行序列。在这里,我来分享这个优先级队列的源代码,虽然自己还不是吃的很透,但是现在这里留下记录,希望下次使用时能更进一步,也欢迎大家在下面讨论,交流。源码:priqueue反馈与建议微博:@AnSwEr不

2015-10-22 00:45:46 2867

原创 Word实用技巧

Word实用技巧前言:总结一些word的使用技巧,可以提高工作效率。欢迎大家继续补充。快捷键Shift+Alt+上(或下)方向键:调整文档中段落的顺序,也可以调整Word表格中的行序。Alt+F8 :可显示用于运行、编辑或删除宏的“宏”对话框。F4 :重复上一步操作。Ctrl组合键: shift+上下左右:用键盘从当前光标位置选择文本。Ctrl + Alt + < :缩小。Ctrl +

2015-10-16 17:28:49 560

原创 Ubuntu下使用github+jekyll搭建博客

Ubuntu下使用github+jekyll搭建博客前言:本文章仅作为我自己搭建博客的一个记录,无原理性的概念,请见谅。注册github这一步较为简单,请自行解决。安装Jekyll需要先安装ruby和rubygems:sudo apt-get install ruby1.9.1-devsudo apt-get install rubygemsexport PATH=

2015-10-16 15:32:03 1622 1

原创 WAMP常用环境配置

WAMP常用环境配置前言: WAMP在使用时常常需要进行自定义的配置,这里介绍几个常用的配置。自定义网站目录修改目录位置如下图,打开httpd.conf文件。 查找DocumentRoot(两处),做如下修改:#demo为自定义网站目录,下面不再说明DocumentRoot "f:/demo"<Directory "F:/demo">重启配置服务。测试:打开浏览器,输入localhost/te

2015-10-15 23:44:22 4791

原创 Linux C编程的时间函数例程

Linux C编程的时间函数例程前言:本文将介绍一些时间函数,但不会一一解释这些函数,只是提供这些函数所返回的值来方便开发者的使用。time()返回当前时间和日期距1970.1.1 00:00:00经过的秒数。#include<stdio.h>#include<time.h>int main(void){ printf("%lds\n\n",time(NULL)); return

2015-10-05 20:25:13 816

原创 浅谈Linux下Makefile编写

浅谈Linux下Makefile的编写前言:本文简要介绍Makefile文件的编写规范,结合具体项目中的应用进行讲解。具体代码地址: https://github.com/AnSwErYWJ/DogFood/blob/master/Makefile简介Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法

2015-10-05 19:35:05 2165

原创 TCP服务器listen函数的包裹函数

TCP服务器listen函数的包裹函数前言:本文将介绍listen函数的包裹函数。listen()函数#include<sys/socket.h>int listen(int sockfd,int backlog)//成功返回0,失败返回-1当TCP服务器调用listen函数时,它做两件事:把服务器套接字从CLOSED状态转换到LISTEN状态。backlog参数规定了内核中未完成连接套接字的

2015-09-25 11:33:54 1501

原创 UNIX安全读写函数——readn和writen

UNIX安全读写函数——readn和writen前言:字节流套接字(TCP套接字)上的read和write函数所表现的行为不同于通常的文件I/O。字节流套接字调用read或write输入或输出的字节数可能比请求的数量少,然而这并不是出错的状态。这是因为内核中用于套接字的缓冲区可能达到了极限。通常这种情况出现在一次读多于4096个字节或write在非阻塞情况下返回不足字节数。为了不多次调用read或防

2015-09-25 11:13:49 3393 1

原创 GDB使用教程

GDB使用教程前言: gdb(GNU debugger)是GNU开发组织发布的一个强大的UNIX/Linux下的程序调试工具。启动gdbgcc -g main.c //调试性编译gdb a.out启动后出现软件信息: 列出源代码(gdb) list9 10 int add(int n)11 {12 return n+1;13 }14 15 int main(

2015-09-23 21:37:56 2031

原创 CentOS下搭建LAMP环境

CentOS下搭建LAMP环境前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发。LAMP: Linux + Apache + PHP + Mysql。系统: CentOS 7,64位。CentOS安装我选取了64位的CentOS 7这个Linux系统,安装过程也很简单,不再过多叙述,只稍微介绍一下我的分区情况: 分区名 大小 /bo

2015-09-23 16:52:21 2243 2

原创 Linux串口编程教程(二)——终端IO介绍

Linux串口编程教程(二)——终端I/O介绍前言:本篇将对终端IO的一系列常用属性以及函数进行解读,这也是为最后一篇教程进行铺垫,希望您仔细阅读。 注意:本篇文章参考了《UNIX环境高级编程》中的第18章。您也可以下载我写的一些源代码。什么是终端终端是一种字符型设备,它分为一下四种:串行端口终端(Serial Port Terminal):是使用计算机串行端口连接的设备,计算机把每个串行端

2015-09-02 22:55:06 2278

原创 Linux串口编程教程(三)——串口编程详解

Linux串口编程教程(三)——串口编程详解前言:本章将正式讲解串口编程技术,利用一个串口收发数据的程序,来分步讲解。 注意:您可以下载我的源代码进行参考。打开串口反馈与建议微博:@AnSwEr不是答案github:AnSwErYWJ博客:AnSwEr不是答案的专栏

2015-09-02 22:38:54 9132 16

原创 Linux串口编程教程(一)——基础知识介绍

Linux串口编程教程(一)——基础知识介绍前言:本文将介绍一些有关于串口的基本概念,偏向于理论,比较杂,如果您不感兴趣或者只想用代码说话,那么请您跳过这篇去看第二篇和第三篇。什么是串口?串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串口有哪些分类?按接口划分为一下三种:RS-232:标准串口,最常用的一种串行通讯接口。有三种类型(A,B和C)

2015-09-01 15:44:22 1473

原创 Ubuntu系统安装ARM-linux-gcc

Ubuntu系统安装arm-linux-gcc交叉编译器前言:由于开发的智能蘑菇房项目最终是要运行在开发板上的,而平时的开发工作则是在自己的PC上完成,为了不必每次编译都在arm板上进行,所以需要在PC上安装交叉编译环境。另外,我的系统是64位的Ubuntu,下面的安装过程也是在这上面完成的。安装1.首先需要从网上下载或者从光盘提取arm-linux-gcc安装包。(我是用的是光盘中的arm-lin

2015-09-01 12:11:21 1175

原创 Friendly ARM开发板安装Linux系统教程

友善之臂ARM9开发板安装Linux系统教程前言:智能蘑菇房项目的运行环境是友善之臂ARM9开发板,所以需要在上面灌一个linux系统,下面我来简单介绍一下。准备读卡器SD卡串口线一根(USB转串口也可以)Friendly ARM开发板SuperBoot烧写BootLoader:在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从

2015-09-01 11:57:16 4649

原创 Linux fork炸弹解析 ——Linux Fork Bomb

Linux Fork Bomb:(){ :|: & };:是一个bash函数,以Fork Bomb闻名,是一个拒绝服务攻击 的Linux 系统。如果你好奇地去执行了这个命令,那么赶快重启系统吧~!命令解析:(){ : | : &};::在这里是一个函数名,我们定义之,并在后面执行它。:|:&,:函数的输出通过管道传给另一个冒号函数作为输入,并且在后台执行。{ };标识着里面的内容是

2015-08-31 10:47:26 8150

原创 Linux平台上SQLite数据库教程(二)——C语言API介绍

Linux平台上SQLite数据库教程(二)——C语言API介绍本文将介绍几个基本的SQLite3数据库的C语言API接口,主要用到两个文件:sqlite3.c、sqlite3.h。源码地址:https://github.com/AnSwErYWJ/SQLite。打开数据库1.原型:int sqlite3_open( const char* filename, /

2015-08-29 21:42:38 2373

原创 Linux平台上SQLite数据库教程(一)——终端使用篇

Linux平台上SQLite数据库的安装与使用SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,可能只需要几百K的内存就够了。能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口。安装在终端输入: sudo apt-get instal

2015-08-28 22:00:22 24799

原创 使用shell脚本清空文件

使用shell脚本清空文件在最近的项目中,会生成很多日志文件,所以需要写一个脚本来手动清空它们,下面提供几种典型方法。方法1代码#!/bin/bash##方法1echo "" > $1echo "$1 cleaned up."运行截图说明我想大家应该注意到了文件其实并没有真正被清空,而是有一个空行。方法2代码#!/bin/bash##方法2: > $1echo "$1 cleaned

2015-08-20 11:08:51 19393 2

原创 Linux命令行文本加密的小技巧

Linux命令行文本加密的小技巧我在学习shell攻略时了解到了这个方法,感觉简单有趣,所以现在把它整理出来和大家分享。ROT13文本编码介绍ROT13(回转13位,rotateby13places,有时中间加了个减号称作ROT-13)是一种简易的置换暗码。把 ROT13 称为“加密”是大方的,“文本模糊处理”更准确些。有时候它被用来隐藏文本中潜在的攻击内容。原理套用ROT13到一段文字上仅仅只需要

2015-08-18 12:35:52 4644

原创 2016 C语言面试题——字符串函数的实现

C语言各类字符串函数的实现开学就要开始找工作了,我觉得这些函数被问到的几率还是很大的,所以在这里与大家分享strlen函数原型:#include <string.h>unsigned int strlen (char *s);功能:计算指定的字符串s 的长度,不包括结束字符”\0”。我的实现:/****************************************************

2015-08-15 16:42:12 2874

原创 交换两个值的方法

交换两个值的方法1.利用temp变量交换temp=a;a=b;b=a;2.加减法交换b = a - b;a = a - b;b = a + b;3.异或交换a = a ^ b;b = a ^ b;a = a ^ b;

2015-08-15 15:56:50 910 2

原创 定义字符串的两种方式

定义字符串的两种方式数组定义char name[] = "answer"指针定义char *name = "answer"比较字符串里的字符可以修改,而字符串是一个常量,字符串里面的字符不能修改。>Tips:可以与我的另外一篇文章一起看。http://blog.csdn.net/u011192270/article/details/46475981

2015-08-15 15:38:57 8928

原创 Linux下Socket编程----connect()函数的包裹函数介绍

Linux下Socket编程—-connect()函数的包裹函数介绍这里主要介绍的是在TCP连接中的应用connect()函数简介1. 功能: 用于客户端建立tcp连接,发起三次握手过程。 2. 原型:#include<sys/socket.h>#include<sys/types.h>int connect(int sockfd, const struct sockaddr* server_

2015-08-14 13:25:24 6328

原创 Linux C编程的DEBUG宏

#if defined(DEBUG_PRINT)#define DEBUG(...)\ do{\ fprintf(stderr,"-----DEBUG-----\n");\ fprintf(stderr,"%s %s\n",__TIME__,__DATE__);\ fprintf(stderr,"%s:%d:%s():",__F

2015-08-13 21:36:12 3506

原创 Linux socket编程的心跳机制总结

Linux socket编程的心跳机制总结我写这篇文章的目的是想总结一下心跳机制的使用,因为最近两个项目的TCP通信中都使用了这个方法,感觉用法好诗比较经典的,所以拿出来与大家共享。什么是心跳机制心跳机制就是当客户端与服务端建立连接后,每隔几分钟发送一个固定消息给服务端,服务端收到后回复一个固定消息给客户端,如果服务端几分钟内没有收到客户端消息,则视客户端断开。发送方可以是客户端和服务端,看具体需求

2015-08-13 21:19:34 7202

原创 UNIX高级环境编程——进程思考

思考一:exec系列函数比system函数更加有效,因为的新进程启动后,原来的程序就不再运行了,切换到新进程中了。

2015-07-24 14:20:50 910

原创 Linux程序设计的一些小工具使用

在Linux下,除了gdb,其实还有一些不错的工具是值得一试的,我就结合最近写的一个ping程序来介绍:注:程序地址:https://github.com/AnSwErYWJ/Pingcflow:打印出一个函数调用树当然你也可以选择将其重定向到一个文件。他的-i选项可以反向输出函数的调用树。先介绍到这,欢迎大家补充。我以后遇到好工具也会继续更新的。。。

2015-07-19 22:39:49 929

原创 linux下nohup命令——让程序在远程主机后台运行

最近做的一个项目,需要登录到远程主机进行运行调试,采取的是talent远程登录。进行了几次实验后发现当运行程序后关闭终端即关闭talent登录后程序有时候也会停止运行,这让我很苦恼,本来想采取守护进程进行编写程序,可是太麻烦,而且这样时间上或许来不及了,所以上网查找了另外一种方法:  用nohup命令启动程序:nohup & 提示:  [~]$ appending output

2015-06-14 13:21:29 5220

原创 C语言字符指针和字符数组的区别

废话不多说,直接上代码:#includeint main(){ char str[]="hello78"; char *str1="world"; printf("%p\n",str); printf("%p\n",str1); printf("%s\n",str); printf("%s\n",str1); return 0;}

2015-06-12 22:08:18 3435

原创 linux下脚本录制工具——script和scriptreplay

在linux环境下,想要录制一段屏幕视屏不是特别方便。在做这次项目时,通过查找资料,找到了一种方便而且便捷的方法,分享给大家。linux下有script和scriptreplay这两个工具组合用于录制命令行。在新版本系统中,已经集成了这两个工具,所以直接使用即可:$script -t 2>timing.log -a >output.session$command$command$exit

2015-06-11 22:12:18 3291

原创 ubuntu64位安装ARM-linux-gcc

本人安装时是使用官方提供的arm-linux-gcc-4.5.1这个版本的。步骤如下:将安装包放入到本地的一个文件夹中,然后tar xvzf xxx.tar.gz -C / ,这样解压后的文件会在/opt/FriendlyARM/toolschain/4.5.1这个里面。接着是进入root权限,使用gedit /root/.bashrc 修改这个文件,添加export PATH=$PA

2015-05-29 10:37:33 1929 1

原创 Python学习笔记(九)

列表生成式:>>> [x * x for x in range(1, 11)][1, 4, 9, 16, 25, 36, 49, 64, 81, 100]复杂表达式:tds = ['%s%s' % (name, score) for name, score in d.iteritems()]print ''print 'NameScore'print '\n'.join

2015-05-19 15:44:53 598

大作业代码

大作业代码

2013-06-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除