![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2 GNU C/C++语言
文章平均质量分 72
freedom1013
embedded linux
展开
-
《C和指针》读书笔记(1)
1.scanf()的返回值是函数成功转换并存储于参数中值的个数!2./*scanf 不会读取该行中最后一个它不需要读取的值--换行符/n,所以该行中的剩余部分就会留在那里等待被读取。这个换行符或者其他scanf不想读取的字符就会被解释成下一行的开始数据。所以用下面这种方法来读取并丢弃这些剩余字符。*/int ch; /*EOF在stdio.h中定义为int,所以为了防止ch = EOF将原创 2006-10-03 13:53:00 · 1025 阅读 · 0 评论 -
给初学者:堆和栈的区别
一、预备知识—程序的内存分配 由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(static): 全局变量和静态变转载 2007-10-06 23:46:00 · 1316 阅读 · 1 评论 -
利用mtrace检查内存泄漏
大家都知道,内存泄漏是每一个程序员和公司最关注的问题。因为此问题可以说是一个定时炸弹且不容易发现。在华为等一些著名的软件公司都十分注意和关心这个问题。一次在听华为一个驱动组的主管的讲座时,他多次的有意识的提到了这个问题,也再次证明了越是经验丰富的老开发人员越关心内存这块雷区,但我们最常去的地方恰恰也就是这块雷区了。最近可能是我们主管在参加什么翻译国外技术书籍(不知道他是否要出书呢,唉原创 2007-05-08 23:44:00 · 1155 阅读 · 0 评论 -
缓冲区溢出原理+源代码
在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕虫。而,中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。我在这里演示一下堆栈溢出的原理。首先,介绍一下原创 2007-04-11 21:32:00 · 2061 阅读 · 0 评论 -
Thinking in C -- C指针
忘记悲伤最好的办法可能就是让自己有事做吧。 因为工作需要,很多好朋友都在重新补最基础也是最重要的C语言。人常说没有学好指针就等于没有学过C,在学校时可能老师只是为了应付考试,而一直在讲那些死板的语法。但对这个C语言(也是任何编程思想)的精髓没有重视。 确实,在几年的编程过程中,感觉对指针的精通可以让我们对任何语言都触类旁通了。语言只是方便我们表达自己思想的助记符,真正的程序在内存中是如何原创 2007-02-14 23:46:00 · 1741 阅读 · 0 评论 -
UNIX环境高级编程(第二版) 读书代码(1-5)
/* * DESCRIPTION: process control that simulate a simple shell; * three function : fork(), exec(), waitpid(); * author:liy * DATE:8-23-2006*/#include "apue.h"#include int main(void){ char buf[MAXLIN原创 2006-10-03 21:35:00 · 1089 阅读 · 0 评论 -
apue(1-2)
/* * DESCRIPTION: read from stdin to stdout; * copy any UNIX file context ; * e.g: a.out > file.data; * e.g: a.out outfile; * DATE:8-23-2006*/#include "apue.h"#define BUFSIZE 4096int main(void)原创 2006-10-03 21:26:00 · 745 阅读 · 0 评论 -
无题
1.注意结构名和数组名不同,它不是一个地址。所以要用&.2.scanf("%f", library[count].value); while(getchar() != /n){ ; /*清空输入行,一般用完scanf后都要清空一下缓冲区里scanf不去读的东西,e.g: ,tab, /n*/ }##用scanf读完缓冲区后,因为scanf是只去读它需要的东西,所以缓冲区还有原创 2006-10-03 14:26:00 · 685 阅读 · 0 评论 -
有限状态机自动机
/********************有限状态机自动机***********************/状态图--一个图的数据结构!1.while + switch;2.状态机:就是指定系统的所有可能的状态及状态间跳转的条件,然后设一个初始状态输入给这台机器,机器就会自动运转,或最后处于终止状态,或在某一个状态不断循环。游戏中状态切换是很频繁的。 可能以前要切换状态就是if~else,或者设标志原创 2006-10-03 14:24:00 · 1576 阅读 · 0 评论 -
"The Complete Reference C" 读书笔记
"The Complete Reference C"一.指针常见严重错误:1.未初始化的指针!!!!!!/*The program is wrong*/int main(void){ int x; int *p; x = 10; *p = x; /*error, p not initialized*/ return 0;}/*The program have bug*/int main(voi原创 2006-10-03 14:22:00 · 885 阅读 · 0 评论 -
《C和指针》读书笔记(2)
1.未初始化的指针--严重错误,注意!e.g: int *a; *a = 1;//我们并不知道指针变量a指向哪里!*越界指针和指向未知值的指针是常见错误的根源!3.把一个整形常量强制转换,来创建指针常量;e.g:int *ptr; ptr = (int *)1;4.if pointer point to same array,pointer variable could use 加减,比较运算符,原创 2006-10-03 13:58:00 · 731 阅读 · 0 评论 -
Makefile Howto
<br />0) 介绍<br />本文将首先介绍为什么要将你的C源代码分离成几个合理的独立档案,什么时候需要分,怎么才能分的好。然后将会告诉你 GNU Make 怎样使你的编译和连接步骤自动化。 对于其它 Make 工具的用户来说,虽然在用其它类似工具时要做适当的调整,本文的内 容仍然是非常有用的。如果对你自己的编程工具有怀疑,可以实际的试一试,但请先阅 读用户手册。 <br /><br />1) 多文件项目 <br />1.1为什么使用它们? <br />首先,多文件项目的好处在那里呢? <br />它们转载 2010-10-23 20:02:00 · 570 阅读 · 0 评论