
内存访问越界
a) 由于使用错误的下标,导致数组访问越界
b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符
c) 使用strcpy, strcat, sprintf, strcmp, strcasecmp等字符串 *** 作函数,将目标字符串读/写爆。应该使用strncpy, strlcpy, strncat, strlcat, snprintf, strncmp, strncasecmp等函数防止读写越界。
当我们的程序崩溃时,内核有可能把该程序当前内存映射到core文件里,方便程序员找到程序出现问题的地方。最常出现的,几乎所有C程序员都出现过的错误就是“段错误”了。也是最难查出问题原因的一个错误。下面我们就针对“段错误”来分析core文件的产生、以及我们如何利用core文件找到出现崩溃的地方。
core文件创建在什么位置
在进程当前工作目录的下创建。通常与程序在相同的路径下。但如果程序中调用了chdir函数,则有可能改变了当前工作目录。这时core文件创建在chdir指定的路径下。有好多程序崩溃了,我们却找不到core文件放在什么位置。和chdir函数就有关系。当然程序崩溃了不一定都产生core文件。
什么时候不产生core文件
在下列条件下不产生core文件:
( a )进程是设置-用户-ID,而且当前用户并非程序文件的所有者;
( b )进程是设置-组-ID,而且当前用户并非该程序文件的组所有者;
( c )用户没有写当前工作目录的许可权;
( d )文件太大。core文件的许可权(假定该文件在此之前并不存在)通常是用户读/写,组读和其他读。
利用GDB调试core文件,当遇到程序崩溃时我们不再束手无策。
1、cobol语言能开发大型机程序, C语言不能。C语言能开发小型机程序,C主要是学的软件开发思想。大型机程序开发基本上都是用cobol语言2、因为,大型机就是结合cobol开发的,cobol离不开大型机,大型机也离不开cobol
COBOL(CommonBusinessOrientedLanguage)是第一个广泛使用的高级编程语言。在企业管理中,数值计算并不复杂,但数据处理信息量却很大。为专门解决经企管理问题,1959年5月,五角大楼委托格雷斯·霍波(G.Hopper)博士领导一个委员会并由RearAdmiralGraceHopper公司主持开发,并于1961年由美国数据系统语言协会公布。经不断修改、丰富完善和标准化,已发展为多种版本。
COBOL重视数据项和输入/输出记录的处理,对具有大量数据的文件提供了简单的处理方式。从名字可以看出,它主要用于解决商业和企业管理等领域的大量数据处理问题,又称为企业管理语言、数据处理语言等。Cobol语言的研制始于50年代末,当时计算机的生产已进入第二代,计算机应用领域开始从数值计算扩大到数据处理。商业和企业事务管理中需要进行处理的数据量急剧增加,迫切需要有适用于这个领域的程序设计语言,以提高编制程序的质量和速度。Cobol语言就是在这种社会背景下应运而生的。也就是说,Cobol已经年过半百了。Cobol正式发布于1960年4月,称为Cobol-60。现在最新的版本应该是Cobol-2002了,而且还在不断改进中,未来的Cobol将支持XML等Web时代的新技术。换言之,Cobol还将继续发展与应用,但与C语言或FORTRAN语言相比,COBOL的数值运算、逻辑运算能力比较弱。
C语言是目前世界上最流行、使用最广泛的面向过程的高级程序设计语言。 C语言对 *** 作系统和系统使用程序以及需要对硬件进行 *** 作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
中文名
c程序
C语言
世界上流行、使用最广泛
类 型
高级程序设计语言
相 关
大型应用软件都是用C语言
高级语言
三维,二维图形和动画
C程序是由函数构成的。函数是C程序的基本组成单位。一个C源程序中仅有一个main()函数,除main函数之外可以有若干个其它的函数。每个函数实现某一特定的 *** 作。因此,函数是C程序的基本单位。
一个函数由两部分组成:
函数的说明部分。包括函数名、函数类型、函数属性、函数参数(形式参数)名、形式参数类型。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)