自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (7)
  • 收藏
  • 关注

原创 LINUX下通过函数改变文件的权限

/**改变文件的权限一个是通过终端命令,另一个是通过函数,这里*主要是通过函数来改变的*一个文件的最终权限是:0777&(~umask),0777是要设置的权限*umask是默认的权限,如果创建一个文件时没有指定权限,这个文*件的权限就是umask。**/#include #include #include #include int main

2014-12-22 11:10:38 916

原创 利用fgets()函数来判断一个文件有多少行

利用fgets()函数来判断一个文件有多少行。

2014-12-22 10:49:11 5324

转载 C 语言中的指针和内存泄漏

引言:对于任何使用 C 语言的人,如果问他们 C 语言的最大烦恼是什么,其中许多人可能会回答说是指针和内存泄漏。这些的确是消耗了开发人员大多数调试时间的事项。指针和内存泄漏对某些开发人员来说似乎令人畏惧,但是一旦您了解了指针及其关联内存操作的基础,它们就是您在 C 语言中拥有的最强大工具本文将与您分享开发人员在开始使用指针来编程前应该知道的秘密。本文内容包括:导致内存破

2014-12-05 10:22:51 501

转载 Why C++?王者归来

有个著名的演讲视频,演讲者是Exceptional C++ 和 C++ Coding Standards 的作者、ISO C++ 委员会的Chair、C++/CLI首席架构师、Microsoft的软件架构师,他叫Herb Sutter,这个视频是 C++ and Beyond 2011上的一次公开演讲,题目是——Why C++?我觉得他的演讲内容足够可以说明很多问题,所以,我把Herb

2014-10-20 17:21:37 486

原创 联想昭阳E46A不能上网

相信大家在网上可以搜到一些常见的问题。无线不能搜索列表。上无线需要打开无线的开灯,FN+F5和硬件上的开关。需要安装电源管理。。。。这些解决了依旧不能上网,用其它浏览器,就是不能刷了界面来。用自带的IE浏览器,提示是LSP错误,解决的方法。打开命令行窗口(cmd)在窗口下输入netsh winsock reset catalog.这是因为电脑中毒了。建议可以安杀毒软

2014-09-22 16:38:40 1376

原创 判断平台是小端序还是大端序

#include int main(void){int iNum = 0x04030201;char *pcNum = (char *)&iNum;if (*pcNum == 0x04)printf("big edum\n");else if (*pcNum == 0x01)printf("small edum\n");return 0;}

2014-09-09 13:59:37 727

转载 函数可重入性

一、可重入函数1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。2

2013-11-04 11:25:55 752

转载 c语言中内存对齐与位域对齐

一。内存对齐许多计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。当一种类型S的对齐模数与另一种类型T的对齐模数的比值是大于1的整数,我们就称类型S的对齐要求比T强(严格),而称T比S弱(宽松)。这种强制的要求一来简化了处理

2013-10-24 20:55:01 844

原创 指针高级

int *f(); ()函数调用操作符优先级高于间接访问操作符*   返回一个整形指针的函数 int (* f)(); 第一个括号起到聚组的作用,第二个括号是函数调用操作符,使第一个括号先执行 函数指针int *(* f)()与上面的相同是一个函数指针,返回值是一个整形指针int f[] []与()的优先级相同整形数组int *f[]元素类型指向整形

2013-10-23 20:30:07 487

原创 exec函数族

函数简介fork() 函数用于创建一个新的子进程,该子进程几乎复制了父进程的全部内容,但是,这个新创建的子进程如何执行呢?exec 函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新的进程替换了。另外,这里的可执行文件既可以是二进制文件,也可以

2013-10-20 11:15:09 526

转载 C 语言中的各个段

C语言中堆和栈的区别一.前言:C语言程序经过编译连接后形成编译、连接后形成的二进制映像文件由栈,堆,数据段(由三部分部分组成:只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代码段组成,如下图所示:1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值。其操作方式类似于数据结构中的栈。2.堆区(heap):一般由程序员分配释放,若程序员

2013-09-06 19:35:17 568

转载 对嵌入式C语言中volatile的理解

一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:

2013-09-06 19:07:06 3385 1

原创 快速,起泡,选择排序

一:选择排序法:T(N)=O(n2)(时序复杂度)通过记录数组下标的方法来进行排序的,找到第一个最小的数后把它放在第一个位置上。第二次从数组的第二个元素查找,找到第二个最小的数然后与数组的第二个元素交换。依次类推,共需要经过N-1趟。void select_sort(int s[N], int n){int i, j, min, t;fo

2013-09-01 16:50:14 506

原创 ARM小结

一:B与BL异同点:相同点: 都是分支语句 范围大小一样PC+_32M对一条32位机器码的指令,要跳转的指令中已经包含了地址,32位中的4位代表条件位,4位代表指令的类型,剩余的用来表示地址,但PC值的最后两位没有用,然而我们也把它们计算进去, 这有2^(32-4-4+2)=64M,因为要上下跳,所以PC+_32M不同点: B是无连接,跳转后不能返回,对应C中的IF..

2013-08-30 16:59:38 923

翻译 结构体大小

先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址和结构体变量地址的差。结构体大小等于最后一个成员的偏移量加上最后一个成员的大小。由于存储变量时地址对齐的要求,编译器在编译程序时会遵循两条原则:一、结构体变量中成员的偏移量必须是成员大小的整数倍(0被认为是任何数的整数倍)二、结构体大小必须是所有成员大小的整数倍。 这是一种说法,还有一种说

2013-08-19 09:00:35 497

原创 广播与组播

广播:如果同时发给局域网中的所有的主机,就称为广播。            广播只有用户数据报(使用UDP协议)套接字才能广播。            广播地址:以192.168.1.0(255.255.255.0)网段为例,最大的主机地址192.168.1.255代表该网段的广播地址。            发到该地址的数据包被所有的主机接收。            255.25

2013-08-17 16:06:06 553

原创 unix/linux下主要的I/O模型:

UNIX/LINUX下主要的4种i/o模型:1,阻塞I/O:     最常用,最简单,效率最低2,非阻塞I/O:      可防止进程阻塞在I/O操作上,需要轮询。3,I/O多路复用:       允许同时对多个I/O进行控制4,信号驱动I/O:     一种异步通信模型。阻塞I/O模式:     阻塞I/O是最普遍使用的I/O模式,大部分的程序使用的都是阻

2013-08-17 15:33:40 909

原创 服务器类型

服务器的类型:循环服务器: 循环服务器在同一时刻只能响应一个客户的请求并发服务器: 并发服务器在同一时刻可以响应多个客户端的请求循环服务器1,TCP服务器(一般很少采用这种模型)流程如下: socket(); bind(); listen(); while(1) {        accept();  while(1)  {    r

2013-08-17 11:44:12 957

原创 如何避免成为僵尸进程

首先要有一些概念:1,若子进程先结束,父进程并未及时回收,子进程将成为僵尸进程 对及时的理解:在一个进程终止或者停止时,将SIGCHLD信号发送给其父进程        按系统默认将忽略此信号,也就是对它不处理,这样子进程就永远是僵尸状态了 除非父进程结束, 2,父进程先结束,子进程将变成孤独进程,被init进程领养且变为后台,最终被回收,不会成为僵尸进程。 前台可以读标准

2013-08-16 19:43:38 981

原创 在嵌入式开发中常用两种服务tftp与nfs(资源的共享与上传,下载)

linux下的文件上传与下载,文件的共享服务:TFTP主要用于文件的传输,在嵌入式的开发交叉的开发环境中被 广泛使用。特点:它使用CS模式,客户端的上传与下载不需要账户。缺点是必须事先告诉用户有那些可以下载的资源。常用的tftpd-hpa(服务端软件)和tftp-hpa(客户端软件)。安装及设置步骤:1,apt-get install thtpd

2013-08-11 13:28:38 827

原创 I/O

标准IO与文件IO的区别:1,遵循的标准不一样,标准IO遵循ANSIC标准,文件遵循POSIX(可移植的操作系统规范)标准。2,标准IO带有缓冲机制,文件IO 没有缓冲机制。3,标准IO用流来描述一个已经打开的文件(流是一个结构体。关键字是FILE),文件IO用文件描述符(它是一个int型的数)来描述一个已经打开的文件。标准IO:对流的理解:首先它是一个结构体,用来描述一个已经

2013-08-11 13:16:17 557

原创 静态库与动态库的区别

库:从本质来说是一种可执行的二进制代码,与具体的硬件平台有关系。静态库与动态库(它们从被载入内在的时间不同)静态库:它是在编译时(具体是在连接时)把库中的相关代码复制到程序中去。优点:程序运行时不需要库缺点:程序的体积偏大,           库的升级不方便。生成步骤:(相同目录下有hello.c hello.h(自定义的头

2013-08-11 13:06:23 615

原创 进程与线程及通信总结

进程与线程及通信总结一:进程,程序与线程的区别:程序:是静态的,存储在磁盘上,是指令与数据的有序集合。进程:是动态的,一个程序执行一次就是一个进程,包括创建,执行,调度与消亡。用fork()函数创建进程时,实现的是对程序的拷贝。不同的进程之间有各自的空间。线程:是轻量级的进程,与进程的不同点是,不同纯程之间,共用进程相同的地址空间。程

2013-08-10 16:26:03 692

IAR使用教程

可以让你快速了解IAR的功能,快速建立自己的工程。

2014-04-04

把windows serve2008 r2当win7用

windows server 2008 r2当win7用的方法

2014-01-22

vim代码自动匹配

在用vim编写代码时,可以自动匹配自己已经写的代码,可以节省输入的时间。

2013-11-14

驾驭Makefile

对makefile有一定了解的,想深入了解makefile的,这是一个不错的选择。

2013-09-06

跟我一起学Makefile

该文档包含了makefile的一般规则,对于学者来说,易入门。

2013-09-06

LinuxLDD 中文版.pdf

LinuxLDD 中文版 能帮助你很快进入驱动的世界

2013-08-11

Linux Device Driver

LDD描述了内核的基本工作原理,对于想进入驱动的人是一个很好的入门课程。

2013-08-11

空空如也

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

TA关注的人

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