自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 调试

调试和测试linux程序的5个阶段1.测试:找出程序中存在的错误或缺陷2.固化:让程序的错误可重现3.定位:确认相关的代码行4.纠正:修改代码纠正错误5.验证:确定修改解决了问题采样法:在程序中增加打印输出一些相关信息利用编译器标志可以方便的添加,删除调试代码例#define BASIC_DEBUG 1#define EXTRA_DEBU

2017-02-20 13:16:39 289

原创 make

Makemake命令需要一个名为makefile的文件来告诉它如何构建一个应用程序,makefile文件由一组依赖关系和规则构成make命令常用的三个参数:-k: 让make命令在发生错误时仍然继续执行-n: 让make命令输出要执行的操作步骤,而不真正的执行这些操作-f:  指定哪个文件作为makefile文件makefile依赖关系:定义了最终应用程

2017-02-19 15:11:51 826

原创 使用curses函数管理基于文本的屏幕

curses标准作为一个重要的过渡,位于简单的文本行程序和完全图形化界面的X视窗系统程序之间。curses还可以管理键盘提供一种简单易用的非阻塞字符输入字符输入模式。    curses的操作目标是一个curses窗口,通常是一个终端屏幕。有两个数据结构来映射终端屏幕,stdscr和curscr。stdscr理解为逻辑屏幕,curscr理解为物理屏幕。通过调用refresh函数来刷新cursc

2017-02-15 14:10:46 625

原创 终端

何为终端:http://www.programgo.com/article/8062473246/http://www.programgo.com/article/7784652169/;jsessionid=242CCD1156839513C97203D4E4623CB7一个终端模拟器打开的窗口可以视为一个终端,tty1到tty7也是终端终端也是一个设备文件,通常一个

2017-02-10 13:18:14 353

原创 Linux环境-日志、资源和限制

日志:系统运行时或者程序运行时会产生很多信息,通常将其保存于/var/log或者/usr/admUNIX规范提供了一个产生信息的接口#include void syslog(int priority, const char *message, arguments...);priority 是一个严重级别与一个设施值的按位或,根据不同的系统配置,不同的严重级别系统会做出不

2017-02-09 21:10:57 540

原创 Linux环境-临时文件、用户信息、主机信息

临时文件:#include char *tmpnam (char *s);返回一个与所有已存在文件都不同的临时文件名,但是另外一个程序可能会创建出与之同名的文件,s也可保存临时文件名FILE *tmpfile(void);返回一个文件流指针,它指向一个唯一的临时文件。该文件以读写的方式打开(通常是以w+方式的fopen),当对它的所有引用全部关闭时,该文件会被自

2017-02-09 14:50:53 365

原创 Linux环境-环境变量、时间和日期

环境变量环境由一组格式为“名字=值“的字符串组成在C语言程序中可以通过putenv和getenv函数来访问和设置环境变量,在environ变量中保存有程序的所有环境变量,它以null结尾。#include extern char **environ;char *getenv(const char *name);name: 为环境变量的名称 例如HOME返

2017-02-09 13:45:01 3048

原创 Linux环境-程序参数

程序参数:int main (int argc, char *argv[])argc为参数的个数argv存有输入参数 第一个为程序自身的名字例:$ myprog left right 'and center'argc 为 4argv 为 { "myprog", "left", "right", "and center" }通常,通过一

2017-02-08 17:57:50 346

原创 目录的库函数操作

与文件流类似,操作目录通过目录流来实现    FILE* -> DIR*目录数据项会在dirent结构体中返回,其包含于dirent.hdirent:ino_t d_ino 文件的inode节点号char d_name[] 文件的名字#include #include DIR *opendir (const char *name);//打开一个目录流

2017-02-06 14:34:22 199

原创 文件和目录的维护

#include int chmod (const char *path, mode_t mode);修改指定文件的权限,与open调用同样#include #include int chown (const char *path, uid_t owner, gid_t group);修改指定文件的 owner 和 group (getuid()和get

2017-02-06 14:12:09 384

原创 文件的系统调用

系统调用的效率底:1.系统调用会影响系统的性能与函数调用相比,在执行系统调用时,linux必须从运行用户代码切换到执行内核代码,然后在返回用户代码。所以尽可能的减少系统调用的次数。2.硬件一次读写的数据块是规定的会导致留下过多的空隙导致空间浪费系统调用与文件描述符:1.系统调用一般通过文件描述符操作,文件描述符用来标记一个打开的文件或设备2.一个程序运行时,它一

2017-02-05 12:35:55 362

原创 Linux文件结构

Linux关于文件操作有两种方式:系统调用标准I/OLinux中一切都是文件:文件: 内容、名字 + 属性(这些管理信息被保存在文件的indode中,它是文件系统中的一个特殊的数据块。系统使用的是文件的indode编号目录:保存其他文件的节点号和名字的文件它的内容:每个数据项都是指向某个文件节点的链接,删除文件名就等于删除与之对应的链接文件的删除:

2017-02-05 12:28:06 243

STM32平衡小车

基于STM32的双轮平衡车

2015-06-08

空空如也

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

TA关注的人

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