- 博客(30)
- 资源 (2)
- 收藏
- 关注
转载 堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两
2014-02-27 15:53:15 528
转载 硬链接和软连接(符号链接)的区别 .
linux系统下提供ln指令来进行文件链接。文件链接主要分为硬链接和软链接。 硬链接:由于linux下的文件是通过索引节点(Inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配inode。每添加一个一个硬链接,文件的链接数就加1。 可以用:ln命令来建立硬链接。语法: [php] view plaincopypri
2014-02-27 15:40:14 561
原创 互联网思维
互联网思维大家都在谈,互联网公司整天推出新产品,无疑是在争夺用户的入口。智能手机火的时候,大家都在争做智能手机,说是在争夺移动互联网的入口;后来又说智能电视是入口,大家有都去做智能电视;后来又说路由器是入口,大家又争夺在路由器。等大家拼到最后,其实最终的入口还是房子.
2014-02-18 18:27:57 1100
转载 Linux下查看进程和线程 .
查看进程1. top 命令top命令查看系统的资源状况 load average表示在过去的一段时间内有多少个进程企图独占CPU zombie 进程 :不是异常情况。一个进程从创建到结束在最后那一段时间遍是僵尸。留在内存中等待父进程取的东西便是僵尸。任何程序都有僵尸状态,它占用一点内存资源,仅仅是表象而已不必害怕。如果程序有问题有机会遇见,解决大批量僵尸简单有效的办法是
2013-07-11 17:00:32 726
转载 linux绑定多个ip(转载)
在Linux下有时候需要给一个网卡绑定多个IP,本文介绍在Redhat系列(redhat,Fedora Core,Centos)中的实现方法和一种在Gentoo等其他Linux中普遍适用的方法。1、单网卡绑定多IP在Redhat系列中的实现方法假设需要绑定多IP的网卡是eth0,请在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0
2013-07-11 16:59:54 601
转载 僵尸进程[转]
在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为"孤儿进程",过继给1号进程init,init始
2013-07-11 16:56:25 497
转载 SIP 中的Dialog,call,session 和 transaction .
如果你对Sip协议中Call, Dialog, Transaction和Message之间的关系感觉到迷惑,那么,那么我可以告诉你,你并不孤单,因为大多数初学者对于这些名词之间的关系都会感到疑惑.Messages(消息) 消息是在服务器和客户端之间交换的独立文本, 有两种类型的消息,分别是请求(Requests)和响应(Responses).
2013-07-11 16:13:06 692
转载 sip消息概念(一)
最近在学习SIP,刚刚看了一个很好的开源工程 pjsip 很强大! 可是对 SIP 还不是很了解,特增加了一个学习计划:SIP学习 RFC 文档参见:http://www.ietf.org/rfc/rfc3261.txtSIP 也是类似 HTTP 的一个协议集合,在网上搜索了一下相关的信息,摘录如下: SIP消息的第一行包含消息的类型和所使用的SIP版本(2.0)。在请求中,
2013-07-01 10:46:12 659
转载 多线程和多进程的区别(小结)
很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。今天终于下了决心,写点东西,以后可以再修修补补也无妨。 一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。我想,只要你不是整天都写那种int main()
2013-05-18 11:00:05 549
转载 VC++获得微秒级时间的方法与技巧探讨
在工业生产控制系统中,有许多需要定时完成的操作,如定时显示当前时间,定时刷新屏幕上的进度条,上位机定时向下位机发送命令和传送数据等。特别是在对控制性能要求较高的实时控制系统和数据采集系统中,就更需要精确定时操作。众所周知,Windows是基于消息机制的系统,任何事件的执行都是通过发送和接收消息来完成的。这样就带来了一些问题,如一旦计算机的CPU被某个进程占用,或系统资源紧张时,发送到消息队列中
2013-05-17 13:37:24 554
原创 程序员的自我修养—第一章
1、计算机软件系统应用层—application programming interface —》 运行库—system call interface(以软件中断的方式提高)—》操作系统—hardware specification—》硬件2、操作系统有两个功能: 1、提供抽象滴接口;2、管理硬件资源。3、计算机硬件资源主要分为 CPU、存储器(包括内存与磁盘)和io设备。4、
2013-05-12 19:49:17 627
转载 Linux 静态库与动态库搜索路径设置
1. 连接和运行时库文件搜索路径到设置 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到库的搜索路径之中。设置库文件的搜
2013-04-16 21:36:28 686
原创 vim使用小技巧-api在线帮助
"man/info map ;... K/s+k/c+k/= man; c+i= info ; 在源文件中,显示光标下滴key的在线帮助。 首先,在.vimrc文件中加入一行:source /usr/local/share/vim/vim73/ftplugin/man.vim当然了,具体要看vim的安装路径。 1、把下面的一行加进 .vimrc文件。nno
2013-04-15 00:09:15 1308
原创 二、Input and output-2013-4-9
Input and output are not part of the C language itself。 一、Standard Input and Outputa、The symbolic constant EOF is defined in . The value is typically -1, bus tests should be written in terms of
2013-04-09 23:24:41 507
原创 一、结构基础-2013-3-30
一、结构1、结构是一个或者多个变量的集合,这些变量可以是不同的类型。某些语言将结构称为“记录” 。2、结构可以拷贝、赋值、取地址、传递给函数, 函数也可以返回结构类型的返回值。3、结构的声明由关键词struct 引入,由包含在花括号内的一系列声明组成; 关键词后面struct后面的名字是可选的, 称为标记。 (如果无结构名,而且也没有typedef声明,是没有意思
2013-04-09 23:13:07 554
原创 vim使用小技巧-编译自动化
"make singlefile set 技巧一:编译当前文件把下面的一行加进你的 .vimrc文件,nnoremap :w :! gcc -g -Wall -o =expand("%:p:r") =expand("%:p") 如果,有文件hello.c。当我们按下F9时,就会先保存当前文件,然后编译成目标文件hello.o,可执行文件hello 。当然了,
2013-02-25 02:53:13 1326
原创 vim使用小技巧—字符搜索
"search set vim搜索技巧一:在当前文件中,搜索光标下的单词。把下面的一行加进你的 .vimrc文件。nnoremap :lv /\=expand("")\>/j %:lw 在nature模式下,把光标放在感兴趣的单词上,按下F3效果如下:然后,在搜索结果所在窗口中,用鼠标(没用鼠标的自己想办法)双击其中的一个结果,相关窗口就会出现对应的代码。
2013-02-25 01:37:14 1117
转载 C语言中几个常量的区别
有三种 enum 标识名{整型常量} ; #define 宏名字 替代正文 常变量 const 变量 变量名= 值;这三者之间存在区别 #define 宏名字 替代正文 是完全没有约束的正文替代,他的结果不受任何限制,完全不顾程序的语法和语义。尽量少用。 const 变量 变量名= 值; 这个本意是变量,只是在定义的时候进行了初始化,而且不能再重新赋值了。定义位置决定
2013-02-24 23:30:18 573
原创 2013年,,噢,,
2013年应该会比较有意思。 我个人觉得决定命运的有两个,一个是性格;一个是观念。其它的不会可以学,或者让别人去做。而性格是长期形成的,不可能一蹴而就。。观念与个人阅历以及成长经历相关,也是慢慢形成的。 自己: 有做记录的习惯,做什么以及怎么做,会比较清楚,。。有什么灵感也会记下来。会做自己喜欢的事情,只要输得起而且自己能把握,就会去做。。观念比较
2013-02-20 22:08:58 518
原创 在arm cpu下多字节拷贝的一个实现,4字节对其。比较快。
对于arm系列cpu,int 类型数据的读与写都需要4字节对其,要不然会崩溃滴。。。所以呢,不要把其它类型的数据强制转换成int类型。。 #include#include#includevoid * arm_memcpy(void * dest,const void * src,size_t len){ unsigned long int index = 0;
2013-01-30 21:11:16 929
原创 我自己写的一个makefile,研究了2周,写的还是这么粗糙,惭愧。。
#设置编译器参数CC = gccAR= ar #objects= base.o error.o shellsort.o sortfile_line.o string.o string.c#设置程序名result := wanwanresult ?= sortfile_line#LIBS=$(result).lib#文件目录SRC :=./src ./HEA
2013-01-30 19:19:30 471
原创 关于makefile
这些天把我头都搞晕了, 一个几千行的makefile,到我手里,一个文档都没有。。。不知道是哪个混蛋搞的。。 搞的我花了几天时间来整理 makefile ,,晕死。。变量、规则一大堆,头痛。 如果不理解工程的makefile,是不能修改与维护的。。否则,只会越弄越错,,。。
2012-11-22 19:33:44 338
原创 study_2012-11
1、 网络编程细节的一些应用与思考。。 网络原理与api应用。。2、 c内存动态分配细节的一些思考。 碎片问题,释放顺序问题。3、 互斥实现细节以及与邮箱的比较与实现细节的一些思考。 对资源的保护与使用方式。4、 little-endian,big-endian的区别与细节的一些思考。 位对齐与字节对齐。5、 ip地址、mac等网络参数的
2012-11-18 16:02:52 492
原创 感悟_2012-11-18
一开始接触公司的项目,感觉项目的makefile很乱,。这一周下来翻了几天的makefile文档,现在回想起来,makefile这么组织还是有道理的,。。所以没什么本事的时候,做人一定要低调。。
2012-11-18 08:05:57 416
原创 Like ifconfig in system
#include /*most types defined in here ,like pid_t*/#include /*most socket function in here*/#include /*in_addr, sockaddr_in, sockaddr_in6 */#include /* inet_pton(),inet_addr()... */#include /*
2012-11-01 14:40:52 436
原创 5、结构元素偏移及寻址细节的一些思考
c语言的结构比较好玩,哈哈。它的指针偏移特别有意思。下面的宏定义也很奇怪: #define offsetof(type, number) (size_t)&(( (type *)0) -> number)开始我以为这个不会通过编译,因为当时我对(void *)0比较敏感,就是NULL指针咯。不过这个宏定义确实是正确的。它用于计算结构元素的偏移量(字节数)。试试就知道了。str
2012-10-10 16:24:47 546
原创 4、利用Rc震荡电路,脉冲计数,测量外部温度 细节的一些思考。
前一段时间,有人问我怎么用单片机的io口加上一些简单的外部电路测量外部温度。我当时是莫名其妙,我承认我从来没有想过这个问题。所以当时我很肯定的回答不可能。(在我的印象中,测温一般用温度传感器,或者热敏电阻之类的。怎么也要用个ad转换器吧。) 在坐公交车回去的路上,我仔细想了这个问题。单片机的io口能直接测到的只有电压,只能分辨高低电平嘛。单片机要想直接测温,只能是测外部脉冲的频率,
2012-10-10 16:19:36 734
原创 3、C函数可变参数实现细节的一些思考
c函数可变参数很有意思,它和cpu有关系,所以这些参数都是库提供的。 4个参数吧,va_list、va_start、va_arg、va_end ; 以前只会用,并不知道为什么可以这样。unix和windows系统针对X86平台是这样的: #define _INTSIZEOF(n) ( (sizeof(n) + sizeof(UINTN) - 1) & ~(sizeof(UINTN)
2012-10-10 16:04:56 968
原创 2、ucos优先级调度以及位运算的一些思考
ucos 的调度算法设计的很巧妙,是一个很经典的位图算法。很简洁。 由OSRdyGrp、 OSRdyTbl[]、OSMapTbl[]、OSUnMapTbl[] 这四个变量组成。都是8位无符号类型的。ucos的设计是支持64个优先级(0– 63 ,0优先级最高)。假设优先级为 prio,运算过程如下:映射: Y =prio >> 3;
2012-10-10 16:02:36 464
原创 1、针对arm处理器的寄存器运算的问题。
arm寄存器都是32位无符号整型数据。最常见的运算就是一些特定位的操作咯。老是单个写,头晕。可以写成函数或者宏,比较方便。最好写成宏吧。/**definition for bool type*/typedef enum __bool{ true = 1, false = 0,}bool; /* *return x with the n
2012-10-10 15:58:35 393
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人