自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ruglcc's blog

手把青秧插满田,低头便见水中天。身心清净方为道,退步原来是向前。

  • 博客(121)
  • 资源 (21)
  • 收藏
  • 关注

转载 C++标准库的学习笔记(开篇)

C++标准库的学习笔记    C++标准库是个极为庞大的体系,因此面面俱到的介绍几乎是不可能的。而且任何一个系统都有其复杂的一面,我觉得即使是只介绍 C 的标准库其工作量也是巨大的,所以我这次整理的内容只也是从宏观入手。介绍 C++标准库相关细节的文章(或书籍)有不少,不同的文章也有各自的侧重点。我觉得了解C++标准库有助于加深对 C++ 的理解,因此我想整理一下自己的学习心得,也可以使大家从

2012-08-31 16:37:41 1407

转载 理解可变参数va_list、va_start、va_arg、va_end原理及使用方法

概述     由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.实现大家先看几宏.C标准库 stdarg.h头文件,有如下几个宏定义:#define _INTSIZEOF(n)   ((sizeof(n)+size

2012-08-30 15:50:00 1209

转载 setjmp和longjmp的"非本地跳转"

C语言中要实现"非本地跳转",C标准函数库提供了2个函数setjmp和longjmp来实现这个功能。头文件在。setjmp/longjmp的典型用途是例外处理机制的实现:利用longjmp恢复程序或线程的状态,甚至可以跳过栈中多层的函数调用。函数声明: SYNOPSIS #include int setjmp(jmp_buf env);DESC

2012-08-30 15:08:55 822

转载 setjmp与longjmp相结合,实现程序的非本地的跳转

首先需要弄白一个概念:本地跳转和非本地跳转本地跳转就是在一个函数内部不同代码位置跳转非本地跳转就是执行序列跨函数实现跳转呵呵!这就是goto语句所不能实现的。也正因为如此,所以才说在C语言中,setjmp与longjmp相结合的方式,它提供了真正意义上的异常处理机制。其实上一篇文章中的那个例程,已经演示了longjmp函数的非本地跳转的场景。这里为了更清晰演示本地跳转与非本地跳

2012-08-30 14:51:29 833

转载 errno.h头文件介绍

查看错误代码errno是调试程序的一个重要方法。当linux C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较 麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。以下来自linux

2012-08-30 10:21:28 1532

转载 C&C++标准库

1.什么是C&C++的标准库?C语言被发明出来时并没有什么库函数,随着C语言的流行,越来越多的厂商或者机构组织开始提供C的编译器,并且同时把经常用到的函数封装成“库”的形式发布;不同的组织发布的库函数的接口和数量各不相同。后来,标准化组织ANSI制定了C语言的标准,同时也制定了一定数量的库(或库函数),就就成为标准库函数。(后来这个ANSI C标准上升为ISO标准,但是内容并没有变化!谁让美国

2012-08-29 16:54:41 4588

原创 arm-linux-gcc-4.3.2.tgz 安装配置步骤

安装交叉编译工具链:下载 arm-linux-gcc-4.3.2.tgz 可以到这里(下载两部分一起解压)arm-linux-gcc-4.3.2.tgz.part1.rararm-linux-gcc-4.3.2.tgz.part2.rar 安装arm-linux-gcc-4.3.2: 1、首先以root用户登入 2、复制arm-linux-gcc-4.3.2.tgz

2012-08-29 13:26:01 4877

转载 Linux 下串口编程入门

串口简介串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个 2

2012-08-23 15:41:31 815

转载 Linux下串口编程

老板让我研究一下UPS的控制,貌似在Linux下面没有相应的监控软件,UPS和电脑通信时候使用的是串口(RS232),所以先对Linux串口编程了解一下。因为只是设计串口传输数据,而不需要串口来处理,那么使用原始模式(Raw Mode)方式来通讯。串口操作需要的头文件:? Opt.c_cflag |= CS8;

2012-08-23 15:19:54 1393

转载 POSIX操作系统的串口编程指南(2) 分类: Linux串口编程

第二章:配置串口这一章介绍怎样使用C语言的POSIX终端接口配置串口。 POSIX终端接口多数系统支持使用POSIX终端接口改变波特率、字符数等参数。首先要包含头文件;这样就定义了终端控制结构和POSIX控制函数。两个最重要的POSIX函数是tcgetattr(3)和tcsetattr(3),用了获取和设置终端属性。你可以设置一个指向term

2012-08-22 10:12:56 990

转载 POSIX操作系统的串口编程指南(1)

5th EditionMichael R. SweetCopyright 1994-1999, All Rights Reserved 原文:http://digilander.libero.it/robang/rubrica/serial.htm 第一次翻译文档,不当之处请指正。  引言《POSIX操作系统的串口编程指南》将

2012-08-22 10:06:38 1836

转载 串口通信的基本概念

1,什么是串口? 2,什么是RS-232? 3,什么是RS-422? 4,什么是RS-485? 5,什么是握手? 1,什么是串口? 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232

2012-08-22 09:53:38 1727

原创 从TQ2440开发板学习各接口

以TQ2440为例,总结一些接口的基本知识

2012-08-22 09:01:23 1160

原创 在线视频教程

成都国嵌专业嵌入式Linux视http://www.xuexi114.com.cn/neirong/cfe9fda9E4C2093E.html 高 linux ARM10TX2440视频教程http://www.youku.com/playlist_show/id_17265450_ascending_1_mode_pic_page_2.html 汇编微机原理及汇编语言

2012-08-21 22:35:24 1633

原创 专家博客记录

记录在网上看到的专家博客,以备学习分类一:linuxhttp://blog.csdn.net/flowingflying     arm linux kernel adorid  http://www.enjoylinux.cn/index.asp  国嵌官网分类二:C/C++分类三:Java分类三:Qth

2012-08-17 11:13:07 874

转载 linux信号 linux signal

Linux Signal (1): 基本概念 1. 信号是软件中断:信号提供了一种处理异步事件的方法. 每个信号都有一个名字, 他们以SIG开头, 如SIGALRM是闹钟信号, 当由alarm函数设置的计时器超时后产生此信号, 然后由SIGALRM的信号处理函数接管处理, 处理之后返回调用alarm函数的应用程序中.2. 信号编号:在头文件中, 信号都用宏定

2012-08-17 10:27:37 2125

转载 Posix多线程编程(6)—共享内存

一、什么是共享内存区 共享内存区是最快的可用IPC形式。它允许多个不相关的进程去访问同一部分逻辑内存。如果需要在两个运行中的进程之间传输数据,共享内存将是一种效率极高的解决方案。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传输就不再涉及内核。这样就可以减少系统调用时间,提高程序效率。 共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。其他进

2012-08-17 10:19:24 742

转载 Posix多线程编程(5)—条件变量

一、什么是条件变量 与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。 条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。 条件的检测是在互斥锁的保护下进

2012-08-17 10:18:26 951 1

转载 Posix多线程编程(4)—互斥量(锁)

一、什么是互斥锁        另一种在多线程程序中同步访问手段是使用互斥量。程序员给某个对象加上一把“锁”,每次只允许一个线程去访问它。如果想对代码关键部分的访问进行控制,你必须在进入这段代码之前锁定一把互斥量,在完成操作之后再打开它。        互斥量函数有        pthread_mutex_init 初始化一个互斥量        pthread_mutex_lo

2012-08-17 10:18:06 670

转载 Posix多线程编程(3)—信号灯(量)

有名信号灯和基于内存的信号灯信号灯---限制进程或线程访问共享资源的个数一、Posix有名信号灯 函数sem_open创建一个新的有名信号灯或打开一个已存在的有名信号灯。有名信号灯总是既可用于线程间的同步,又可以用于进程间的同步。 但是基于内存的信号灯,用于线程间同步比较方便,用于进程间通信就会出现一定的问题。1.posix有名信号灯函数 函数1. 名称:: sem_o

2012-08-17 10:17:20 607

转载 Posix多线程编程(2)—线程属性

一.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 函数1. 名称:: pthread_attr_init/pthread_attr_destroy 功能: 对线程属性初始化/去除初始化

2012-08-17 10:16:44 415

转载 Posix多线程编程(1)—线程基础

一.什么是线程        在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。 典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各自独立的任务。 二.线程的优点 (1)通过为每种事件类型的处理分配单独的线程,能够简化处

2012-08-17 10:15:26 705

转载 深入理解linux互斥锁(mutex)

锁机制,可以说是linux整个系统的精髓所在,linux内核都是围绕着同步在运转。在多进程和多线程编程中,锁起着极其重要的作用。我这里说的是互斥锁,其实是泛指linux中所有的锁机制。我在这里不讲如果创建锁,关于锁的创建,网上代码很多,我在这里就不多说了。我要谈一谈一个让所有刚刚接触锁机制的程序员都很困惑的问题:如何使用以及锁机制在程序中是如何运作的。  为什么要使用锁

2012-08-17 10:11:27 769

转载 裸机开发经验

首先说明,我没啥经验。只是说一下我的体会。也没有朝谁开火的意思。如果无意伤了谁,还望海涵;如果所言有误,还请高手多多指教。好了,开始忽悠~~~~~~~~~~~~~~~~在论坛里见到好多朋友学习裸机的时候都有一个习惯——做裸机开发时,过度依赖天嵌的裸机测试程序。怎么说呢,我觉得这样不是很好。尤其是对于一个新手。       也许是学习单片机出身的原因,我有一个毛病,就是对别人的代码不放心

2012-08-17 08:51:35 1239

转载 emacs 复制和剪切一行

在编码的过程中,经常需要复制和剪切一整行代码,如果用emacs本来的快捷键,复制一行的话,需要C-a C-@ C-e M-w 4步操作才能完成,比较麻烦。于是,我改造了一下emacs的M-w和C-w快捷键,当没有区域被选中的时候,就复制或剪切一整行。代码如下:;; copy region or whole line(global-set-key "\M-w"(lambd

2012-08-17 07:37:33 12759 1

转载 Linux操作系统下的多线程编程详细解析

zieckey (zieckey@yahoo.com.cn)    线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括L

2012-08-16 16:55:20 1366

转载 GDB 调试程序

说明:以下内容根据【1】中所讲述进行整理转载,所有权归原作者。【2】中对【1】中所提及的命令进行了总结。一、GDB概述    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。一般来说,GDB主要帮忙你完成下面四个方面的功能:1、自定义的要求随心所欲的运行程序。2、设置断点(断点可以是条件表达式)。3、在断点处输出当前变量信息。4、动态的改变程序的执行环境

2012-08-16 16:26:40 1035

转载 7、取消点的进一步讨论

线程取消的方法是向目标线程发Cancel信号,但如何处理Cancel信号则由目标线程自己决定,或者忽略、或者立即终止、或者继续运行至Cancelation-point(取消点),由不同的Cancelation状态决定。线程接收到CANCEL信号的缺省处理(即pthread_create()创建线程的缺省状态)是继续运行至取消点,也就是说设置一个CANCELED状态,线程继续运行,只有运行至Ca

2012-08-16 16:14:33 932

转载 6、一个 pthread_cancel 引起的线程死锁【整理转载】

说明:本文由【2,3】整理而得。这篇文章主要从一个 Linux 下一个pthread_cancel函数引起的多线程死锁小例子出发来说明Linux系统对 POSIX线程取消点的实现方式,以及如何避免因此产生的线程死锁。目 录:1. 一个 pthread_cancel 引起的线程死锁小例子2. 取消点(Cancellation Point)3. 取消类型(Cancell

2012-08-16 16:13:05 812

转载 5、线程终止方式:pthread_cleanup_push/pthread_cleanup_pop()

以下内容根据【1】进行整理。关于取消点,将在后面进一步讨论。1、一般来说,Posix的线程终止有两种情况:正常终止和非正常终止。线程主动调用pthread_exit()或者从线程函数中return都将使线程正常退出,这是可预见的退出方式;非正常终止是线程在其他线程的干预下,或者由于自身运行出错(比如访问非法地址)而退出,这种退出方式是不可预见的。2、线程终止时的清理    不论是可预见

2012-08-16 16:12:00 562

转载 4、Linux多线程,线程同步(2)

2)条件变量(cond)    利用线程间共享的全局变量进行同步的一种机制。条件变量上的基本操作有:触发条件(当条件变为true 时);等待条件,挂起线程直到其他线程触发条件。int pthread_cond_init(pthread_cond_t *cond,pthread_condattr_t *cond_attr);   int pthread_cond_wait(pth

2012-08-16 16:11:40 787

转载 3、Linux多线程,线程同步

5)线程私有数据    进程内的所有线程共享进程的数据空间,因此全局变量为所有线程所共有。但有时线程也需要保存自己的私有数据,这时可以创建线程私有数据(Thread-specific Date)TSD来解决。在线程内部,私有数据可以被各个函数访问,但对其他线程是屏蔽的。例如我们常见的变量errno,它返回标准的出错信息。它显然不能是一个局部变量,几乎每个函数都应该可以调用它;但它又不能是一个全

2012-08-16 16:09:55 552

转载 2、Linux多线程,线程的分离与结合

(2)线程的分离与结合    在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了

2012-08-16 16:09:39 553

转载 1、Linux多线程,基本概念

说明:以下内容,根据参考中【1~6】内容整理而得。一、基本概念1、线程是计算机中独立运行的最小单位。进程是分配资源的单位。2、为什么使用多线程?(1)启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远

2012-08-16 16:09:13 712

转载 C++ Boost库简介

boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。     boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数

2012-08-16 08:43:27 1035

转载 Qt配置vs2005的方法

1.正常安装Visual Studio 2005,只要安装了C++即可.注意:不是Express版本.2.下载Qt源代码Qt 4.3.2 Windows OpenSource版下载:http://www.qtcn.org/download/qt-win-opensource-src-4.3.2.zipftp://ftp.trolltech.com/qt/source/qt-

2012-08-15 16:49:22 646

转载 嵌入式人才的发展方向!

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的 硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到 的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set

2012-08-15 08:23:07 2919

转载 嵌入式学习指南

近些年来,嵌入式系统的发展在国内可谓如火如荼,很多公司都急需嵌入式系统方面的开发人员。然而,在高校中,嵌入式系统的教学却较为滞后,很多高年级的本科生和刚入学的研究生都苦于不知从何学起。在本文中,笔者将根据自己的嵌入式系统开发和教学经验,简要介绍嵌入式系统的学习方法,力求能帮助初学者找到一条入门之路。什么是嵌入式系统?   学习嵌入式系统,首先应该明确什么是嵌入式系统,否则费力去学,却不

2012-08-15 08:16:43 2164

转载 C++进阶 必读书籍

(一)语言入门:《C++ Primer》最新版本:第三版(第四版国外已上架, 国内一些网上书店也在预订中)适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是 好事。《The C++ Programming Language》/《C++程序设计语言》最新版本:第三版特别版简称 TC++PL,有其他语言的丰富经验

2012-08-15 07:42:25 25571 1

转载 分析各家2440开发板的性价比(初学者如何选择开发板)

作者:gooogleman  邮箱:gooogleman@foxmail.com地址:http://blog.csdn.net/gooogleman/article/details/4544046   我曾经在大学买过两个ARM9,经历了纠结的入门过程 http://blog.csdn.net/gooogleman/archive/2010/05/23/5617981.as

2012-08-14 20:52:00 3194

业务逻辑实现 QT WebSocket + QWebChannel 实现 C/C++ 与 javascript通信

业务逻辑实现 QT WebSocket + QWebChannel 实现 C/C++ 与 javascript通信 界面使用前端electron + vue + vite + layui + qwebchannel.js 实现 qt子进程自动启动,websocket Client自动重连,C++与js/ts的双向异步通信,快速开发 博文地址:https://editor.csdn.net/md/?articleId=125851497

2022-07-18

electron + vue + vite + qwebchannel 实现C++与JS通信

业务逻辑实现 QT WebSocket + QWebChannel 实现 C/C++ 与 javascript通信 界面使用前端electron + vue + vite + layui + qwebchannel.js 实现 qt子进程自动启动,websocket Client自动重连,C++与js/ts的双向异步通信,快速开发 博文地址:https://editor.csdn.net/md/?articleId=125851497

2022-07-18

教材管理系统+VB+Acess + 源码 + PPT

学校教材管理主要是由教材计划制定、采购、入库、发放、记账、结算等一系列工作所组成,该工作各院校都设有专门机构负责该项工作,通常是教材科。由于学校中专业设置门类多,各专业每期开设课程种类多其业务不仅涉及出版部门,而且要面对全校各系、部的授课教师,各班级的学生,每期教材科涉及管理的入出库教材种类少则几百多则几千种,涉及教材册数少则几千多则几万,涉及人员广,工作量大,再者特别是近年来,我国高等教育规模的不断扩大,学校学生 人数迅速增加,使教材管理工作更加繁重不堪。据调查,到目前为止,我国还有许多学校甚至是一些重点院校的教材管理仍为手工管理方式,这种现状不但与现实学校教材管理的业务需求不相适应,并且也与学校信息化建设的发展趋势不相适应,因此,学校教材管理人员目前迫切需要一套方便、高效的计算机化的管理信息系统来代替他们繁琐、低效的传统手工管理方式,并最终实现教材管理的全面自动化。

2022-02-15

Android Screen Monitor

Android Screen Monitor

2016-09-20

macos 下图形化svn工具Versions

macos 下图形化svn工具Versions

2015-11-26

MacOSx下图形化svn工具 CornerStone2.71

MacOSx下图形化svn工具 CornerStone2.71

2015-11-26

Subversion-1.9.2_10.10.x.pkg

MacOS X 10.10 svn 最新版本 Subversion-1.9.2_10.10.x.pkg

2015-11-26

Java学习路线(传智播客)

Java学习路线(传智播客) java学习步骤

2013-03-25

shell命令解析器项目

Linux操作系统中shell是用户与系统内核沟通的中介,它为用户使用操作系统的服务提供了一个命令行界面,用户在shell提示符下输入的每个命令都由shell先解释,然后传给内核执行。本实验要求用C语言编写一个简单的shell程序,希望达到如下目的:1、能够执行外部程序命令,命令可以带参数;2、能够执行fg、bg、cd、history、exit等内部命令;

2013-02-05

[c源码]shell命令解析器项目

shell命令解析器项目 通过模块化实现shell命令解释器的简单功能,并整理了不同方法实现的代码模块,适合自己研究的简单代码,适合初学者研究。

2013-02-05

named pipe tcp proxy

named pipe tcp proxy

2012-11-06

arm-linux-gcc-4.3.2.tgz.part2.rar

arm-linux-gcc-4.3.2.tgz.part2.rar

2012-08-29

arm-linux-gcc-4.3.2.tgz.part1

arm-linux-gcc-4.3.2.tgz part1 嵌入式开发工具链,arm linux gcc

2012-08-29

嵌入式学习步骤及方法(精典).doc

嵌入式的学习步骤,很值得一看 嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,冬雪终将化去,春风定会吹来。具体步骤如下

2012-07-28

Windows+Shell扩展编程完全指南.chm 电子书

Windows+Shell扩展编程完全指南 chm格式电子书 shell扩展编程方面的好资料

2010-04-06

注册表Hive文件编程资料

在工作遇到要分析注册表hive文件,实现删除键及键值的恢复查看,这里是我收集和整理的一些资料,相信会对研究注册表hive文件结构相关技术的朋友有帮助.

2010-04-06

《Windows Shell编程》 电子书

《Windows Shell编程》 chm 格式电子书 Windows Shell编程和指导性丛书

2010-04-06

空空如也

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

TA关注的人

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