自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (24)
  • 收藏
  • 关注

转载 可重入函数和不可重入函数

可重入函数      在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会 出错。不可重入函数在实时系统设计中被视为不安全函数。     满足

2012-05-22 16:54:55 375

转载 如何查看僵死进程

如何查看僵死进程关于ZOMBIE进程:这些进程已经死亡,但没有释放系统资源,包括内存和一些一些系统表等,如果这样的进程很多,会引发系统问题。用ps -el看出的进程状态如果是Z,就是僵尸进程。ps -ef|grep defunc可以找出僵尸进程.有些ZOMBIE进程时用kill -9也不能杀死,而且消耗了很多系统资源不能释放,如果系统在shutdown时发出信息

2012-05-22 16:09:38 781

转载 线程同步(互斥锁与信号量的作用与区别)

“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的时候锁和信号量会同时使用的”也就是说,信

2012-05-22 11:41:49 654

转载 Posix多线程编程学习笔记(六)—共享内存(3)

五、共享内存区的写入和读出       上面我们介绍了mmap函数,下面我们就可以通过这些函数,把进程映射到共享内存区。然后我们就可以通过共享内存区进行进程间通信了。       下面是共享内存区写入的例子:/*shm_write.h写入/读出共享内存区*/#include #include #include #include  int ma

2012-05-22 11:40:22 411

转载 Posix多线程编程学习笔记(六)—共享内存(2)

三、posix共享内存函数posix共享内存区涉及两个步骤:1、指定一个名字参数调用shm_open,以创建一个新的共享内存区对象或打开一个以存在的共享内存区对象。2、调用mmap把这个共享内存区映射到调用进程的地址空间。传递给shm_open的名字参数随后由希望共享该内存区的任何其他进程使用。 5.名称::shm_open功

2012-05-22 11:37:05 337

转载 Posix多线程编程学习笔记(六)—共享内存(1)

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

2012-05-22 11:31:03 497

转载 Posix多线程编程学习笔记(五)—条件变量(2)

下面的程序是经典的生产者/消费者的例证。#include #include #include #define MAX 5 pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; /*初始化互斥锁*/pthread_cond_t=PTHREAD_CODE_INITIALIZER; /*初始化条件变量*/ t

2012-05-22 11:27:11 469 1

转载 Posix多线程编程学习笔记(五)—条件变量(1)

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

2012-05-22 11:19:57 274

转载 Posix多线程编程学习笔记(四)—互斥量(2)

四、互斥锁属性       线程和线程的同步对象(互斥量,读写锁,条件变量)都具有属性。在修改属性前都需要对该结构进行初始化。使用后要把该结构回收。我们用pthread_ mutexattr_init函数对pthread_mutexattr结构进行初始化,用pthread_mutexattr_destroy函数对该结构进行回收。 4名称::pthread

2012-05-22 10:56:45 376

转载 Posix多线程编程学习笔记(四)—互斥量(1)

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

2012-05-22 10:56:11 375

转载 Posix多线程编程学习笔记(三)—信号灯(3)

4.posix有名信号灯应用于多进程下面就是应用Posix有名信号灯的一个小程序。用它来限制访问共享代码的进程数目。#include #include #include #include  void print(pid_t);sem_t *sem; /*定义Posix有名信号灯*/int val; /*定义信号灯当前值*/ int mai

2012-05-22 10:52:38 885

转载 Posix多线程编程学习笔记(三)—信号灯(2)

5.名称::sem_wait/sem_trywait功能:等待共享资源头文件:#include 函数原形:int sem_wait(sem_t *sem);int sem_trywait(sem_t *sem);参数:sem 指向信

2012-05-22 10:39:46 335

转载 Posix多线程编程学习笔记(三)—信号灯(1)

Posix有名信号灯       函数sem_open创建一个新的有名信号灯或打开一个已存在的有名信号灯。有名信号灯总是既可用于线程间的同步,又可以用于进程间的同步。 1.posix有名信号灯函数1.名称::sem_open功能:创建并初始化有名信号灯头文件:#include

2012-05-22 10:35:13 356

转载 Posix多线程编程学习笔记(二)—线程属性(3)

六、线程的作用域       函数pthread_attr_setscope和pthread_attr_getscope分别用来设置和得到线程的作用域,这两个函数的定义如下:       7.名称::pthread_attr_setscopepthread_attr_getscope功能:获得/设置线程的作用域

2012-05-22 10:33:36 348

转载 Posix多线程编程学习笔记(二)—线程属性(2)

四、线程的调度策略       函数pthread_attr_setschedpolicy和pthread_attr_getschedpolicy分别用来设置和得到线程的调度策略。 4.名称::pthread_attr_getschedpolicypthread_attr_setschedpolicy功能:获得/设

2012-05-22 10:27:14 733 1

转载 Posix多线程编程学习笔记(二)—线程属性(1)

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

2012-05-22 10:24:42 335

转载 Posix多线程编程学习笔记(一)—线程基础(2)

6.名称::pthread_detach功能:使线程进入分离状态。头文件:#include 函数原形:int pthread_detach(pthread_t tid);参数: 返回值:若成功则返回0,否则返

2012-05-22 10:20:47 299

转载 Posix多线程编程学习笔记(一)—线程基础(1)

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

2012-05-22 10:14:12 386

转载 一个隐蔽的内存泄漏——pthread_create后没有detach导致内存持续增长

昨天解决了一个隐蔽的内存泄漏问题,原因是pthread_create后的僵死线程没有释放导致的内存持续增长。现象是这样的:短时间内程序运行正常,但跑了12小时左右,用top查看其内存占用居然高达2G,于是马上意识到有内存泄漏。最先想到的是malloc/free、new/delete没有配对,申请的内存没有释放。于是写了个跟踪malloc/free调用的模块,不过检查中并没有找到未释放的内存

2012-05-22 10:00:29 1169

转载 前台进程和后台进程

操作系统中,前台进程和后台进程有什么区别?特征是什么?后台程序基本上不和用户交互,优先级别稍微低一点 前台的程序和用户交互,需要较高的响应速度,优先级别稍微高一点直接从后台手工启动一个进程用得比较少一些,除非是该进程甚为耗时,且用户也不急着需要结果的时候。假设用户要启动一个需要长时间运行的格式化文本文件的进程。为了不使整个shell在格式化过程中都处于“瘫痪”状态,从后台启动这个进程是

2012-05-17 15:12:40 16889 2

转载 Linux进程的层次关系

前段时间在看清华大学出版社出版的《Linux教程》(05年6月第一版)。在248页第十三章《进程》有一节是简述Linux进程的层次关系的,把操作系统自启动后都做了什么,说得比较清晰,看过后受益匪浅。    就是喜欢看这种能把整个框架说得比较清楚的文章!特抄来以共享:    当打开Linux系统,LILO(LInux LOader)找到Linux内核把它加载到内存。它初始化各种硬件,包括磁盘

2012-05-17 14:26:02 2208

转载 Linux core 文件介绍

Linux core 文件介绍1. core文件的简单介绍在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。 2. 开启或关闭core文件的生成用以下命令来阻止系统生成core文件:ulimit -c 0下面的命令可以检查生成core文件的选项是否打开:ulimit -a该命令将显示

2012-05-17 13:28:01 391

转载 system() 函数

相关函数:fork, execve, waitpid, popen头文件:#include 定义函数:int system(const char * string);函数说明:system()会调用fork()产生子进程, 由子进程来调用/bin/sh-c string 来执行参数string 字符串所代表的命令, 此命令执行完后随即返回原调用的进程. 在调用system(

2012-05-17 11:32:53 486

转载 setUID,setGID,getuid,geteuid函数

在Linux系统中每个普通用户都可以更改自己的密码,这是合理的设置。问题是:用户的信息保存在文件/etc/passwd中,用户的密码保存在文件/etc/shadow中,也就是说用户更改自己密码时是修改了/etc/shadow文件中的加密密码,但是,LOOK——-rw-r--r-- 1 root root 1787 Oct 27  2009 /etc/passwd-r--------

2012-05-17 09:57:38 2052

转载 wait() 和waitpid() 函数

一)系统调用wait  1)概述  wait函数的原型为:pid_t wait(int *status)  当进程退出时,它向父进程发送一个SIGCHLD信号,默认情况下总是忽略SIGCHLD信号,此时进程状态一直保留在内存中,直到父进程使用wait函数收集状态信息,才会清空这些信息.  用wait来等待一个子进程终止运行称为回收进程.  当父进程忘了用wait()函数等待已终

2012-05-16 17:18:53 750

转载 fork与vfork 函数

一)fork的概述  .操作系统对进程的管理,是通过进程表完成的.进程表中的每一个表项,记录的是当前操作系统中一个进程的信息.  .进程在系统的唯一标识是PID,PID是一个从1到32768的正整数,其中1一般是特殊进程init,其它进程从2开始依次编号.当用完32768后,从2重新开始.  .一个称为“程序计数器(program counter, pc)”的寄存器,指出当前占用 CP

2012-05-16 16:19:20 445

转载 getrlimit和setrlimit函数

getrlimit和setrlimit函数   每个进程都有一组资源限制,其中某一些可以用getrlimit和setrlimit函数查询和更改。#include #include int getrlimit(int resource,struct rlimit *rlptr);int setrlimit(int resource,const struct rlimit rlpt

2012-05-16 15:26:44 1316

转载 getenv,putenv,setenv函数

getenv(取得环境变量内容) 相关函数 putenv,setenv,unsetenv表头文件 #include定义函数 char * getenv(const char *name);函数说明 getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存

2012-05-15 11:13:56 590

转载 size命令

显示一个目标文件或者链接库文件中的目标文件的各个段的大小,当没有输入文件名时,默认为a.out。size:支持的目标:elf32-i386 a.out-i386-linux efi-app-ia32 elf32-little elf32-bigsrec symbolsrec tekhex binary ihex trad-core。命令格式:size范例: [root@lo

2012-05-15 10:51:42 834

转载 atexit函数和on_exit函数

1.atexit函数atexit(设置程序正常结束前调用的函数) 相关函数  _exit,exit,on_exit表头文件  #include定义函数  int atexit (void(*function)(void));函数说明 atexit()用来设置一个程序正常结束前调用的函数。当程序通过调用exit()或从main中返回时,参数function所指定的

2012-05-15 10:08:38 4143

转载 Linux access函数

Linux access函数功能描述: 检查调用进程是否可以对指定的文件执行某种操作。Linux access函数用法: #include #include int access(const char *pathname, int mode);Linux access函数参数: pathname: 需要测试的文件路径名。 mode: 需要测试的操作模式,可能值是

2012-05-14 15:22:34 1007

转载 Linux进程控制——exec函数族

1、简介在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是:#include extern char **environ;int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char

2012-05-14 14:55:52 434

转载 Linux 函数--fstat/stat/lstat系统调用

Linux 函数--fstat/stat/lstat系统调用Linux表头文件:    #include             #include 定义函数:    int stat(const char *file_name, struct stat *buf); 函数说明:    通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返

2012-05-14 14:06:25 593

转载 Linux ioctl函数

Linux ioctl函数  转载自:http://www.linuxidc.com/Linux/2007-12/9623.htm    我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioct

2012-05-14 13:43:27 720

转载 Linux下 fcntl 函数用法说明

Linux下 fcntl 函数用法说明功能描述:根据文件描述词来操作文件的特性。 文件控制函数         fcntl -- file controlLIBRARY         Standard C Library (libc, -lc)SYNOPSIS         #include ;          int fcntl(int fd

2012-05-14 13:14:52 337

转载 GDB 多线程环境调试

出处:http://www.ibm.com/developerworks/cn/linux/l-pow-debug/ 感谢原作者多线程环境在 GDB 中有一些特殊的命令可以用于多线程应用程序的调试。下面这个例子给出了一个死锁情况,并介绍了如何使用这些命令来检查多线程应用程序中的问题:多线程例子 #include #inclu

2012-05-11 11:23:22 1091

转载 标准 C 语言头文件

标准 C 语言头文件ISO C 标准定义的头文件(24 项) 验证程序断言 支持复数算术运算 字符类型 出错码 浮点环境 浮点常量 整型格式转换 替代关系操作符宏 实现常量 局部类别 数学常量 非局部 goto 信号 可变参数表 布尔类型和值 标准定义 整型 标准 I/O 库 实用程序库函数 字符串操作 通用类型数学宏 时间和日期

2012-05-11 10:00:28 457

转载 Linux select学习笔记★★★★★

Linux select学习笔记★★★★★  [嵌入式]select系统调用是用来让我们的程序监视多个文件描述符(file descrīptor)的状态变化的。程序会停在select这里等待,直到被监视的文件描述符有某一个或多个发生了状态改变。select()的机制中提供一fd_set的数据结构,实际上是一long类型的数组, 每一个数组元素都能与一打开的文件描述符(不管是Socket描述

2012-05-10 14:06:30 819

转载 理解soap

Status of this DocumentThis section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is ma

2012-04-28 11:35:38 3177

转载 sqlite3 详细应用

转载自:http://blog.sina.com.cn/s/blog_3fc8570201000d6x.html目录1建立数据库档案2在sqlite3提示列下操作3SQL的指令格式4建立资料表5建立索引6加入一笔资料7查询资料8如何更改或删除资料9其他sqlite的特别用法10小结 建立数据库档案用sqlite3建立数据库的方法很简单,只要在shell下键入(以

2012-04-27 11:18:41 432

Android开发视频教学源码

mars老师的Android开发视频教学源码(第一季)

2012-12-13

udp例子代码

一个server作为中转消息,两个client(同时打开两个client即可)互相接收发送消息

2012-06-13

linux c 函数参考文件

里面包含两个文件,一个为linux c库函数用法的参考文件,另外一个为linux c库函数用法的参考书。

2012-06-12

dbus例程.zip

里面包含1个c文件以及编译应该注意的问题,经测编译后能正常工作。 linux系统需要先安装dbus。

2012-06-01

Dbus简介和例程

里面有两个doc文档,分别介绍Dbus的作用以及例程说明。

2012-06-01

S3C2440中文手册

S3C2440硬件资源的开发文档,而且是中文的!!!

2012-01-05

STM32之PWM资料

个人网上收集整理,看了应该对STM32中的PWM设置有了全面的认识

2011-10-24

STM32F2培训资料

STM32培训资料,很不错的资料来的,网上收集

2011-10-24

里煳涂学STM32共6讲

稀里煳涂学STM32,看了就没那么稀里煳涂了

2011-10-20

如何使用STM32的软件库在IAR的EWARM(4.42A)下进行应用开发

如何使用STM32的软件库在IAR的EWARM(4.42A)下进行应用开发,STM32,IAR配置!!!!

2011-10-20

SIM300调试工具

里面包含了:NetAssist,SIM300串口工具,TCPServer上位机VB软件,短信测试软件。。。。。。方便调试sim300

2011-10-20

stm32+IAR配置与固件使用

stm32+IAR配置与固件使用,很详细介绍,适合初学者

2011-10-20

菜鸟学习手册-罗嗦版(stm32初学者学习资料MDK版)

stm32初学者学习资料MDK版,里面详细介绍利用kelic开发stm32

2011-10-13

stm32固件程序以及例程

stm32固件程序,stm32例程!!!

2011-10-13

STM32参考手册和固件库(中文版)

stm32初学者适用,stm32专业者参考,有了这两个资料,stm32的资源应用没问题!!

2011-10-13

stm32中文学习资料集合(IAR)

个人整理收集的资料,感觉还可以!!!!!

2011-10-12

sim300程序

有各种适合初学者参考的例程在里面,有着很高的参考价值!!

2011-10-10

STM32F10例程

STM32F10各个功能的例程,很好很强大!!!

2011-09-29

GBA嵌入式学习教程

通过利用任天堂的GBA游戏机来代替ARM开发板来学习ARM,很好的教程!!!

2011-09-07

linux语句查找大全

很全的linux语法介绍!!!而且是全中文的!!!!

2011-09-07

空空如也

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

TA关注的人

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