c语言的基础是什么出错的原因是什么?

C语言出错常见情况_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
C语言出错常见情况
大小:602.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢&&/&&&&/&&&&/&&
头文件:#include &stdio.h&
函数perror()用于抛出最近的一次系统错误信息,其原型如下:
& & void perror(char *string);
【参数】string为要输出的错误信息。
说明:perror()用来将上一个函数发生错误的原因输出到标准错误(stderr)。参数string所指的字符串会先打印出,后面再加上错误原因字符串,此错误原因依照全局变量errno 的值来决定要输出的字符串。
在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。当你调用&某些&函数出错时,该函数已经重新设置了errno的值。perror函数只是将你输入的一些信息和现在的errno所对应的错误一起输出。
【实例】打开一个不存在的文件并输出错误信息。
#include &stdio.h&
#include &assert.h&
#include &stdlib.h&
int main( void )
&&& FILE *
&&& fp = fopen( &test.txt&, &w& );/*打开文件*/
&&& assert( fp ); /*断言不为空*/
&&& fclose( fp );/*关闭*/
&&& fp = fopen( &nulltest.txt&, &r& );/*打开一个不存在的文件*/
&&& if ( NULL == fp )
&&&&&&& /*显示最近一次错误信息*/
&&&&&&& perror(&fopen( \&nulltest.txt\&, \&r\& )&);
&&& return 0;
运行结果:
fopen( &nulltest.txt&, &r& ):No such file or directory
程序先定义一个文件指针fp,之后创建文件 test.txt,断言文件打开成功,然后关闭该文件,再以只读的方式打开文件nulltest.txt,判断该文件指针是否问空,如果为空则使用 perror() 输出错误信息。perror()用来将上一个函数发生错误的原因 输出到标准设备(stderr)。函数参数string所指的字符串会先打印出, 后面再加上错误原因字符串。此错误原因依照全局变量error的值来决定要输出的字符串。
如果连续调用perror,如下:
perror(&1&);
perror(&2&);
会出现以下结果:
2:Illegal seek
这种问题出现的原因是:
perror()是通过lseek方法根据errorno查找对应的错误信息,然后输出的。
在程序运行的时候,errorno的初始值对应的信息为:Success。只有程序中有错误出现时,才会改变给errorno。如果没有错误出现,errorno的值是不会改变的。
但是perror方法是个例外,每次调用perror方法,都会首先输出errorno对应的信息,然后重置errorno为undefined,这时如果马上在一次调用perror,perror中的lseek根据undefined去查找错误信息,就会抛错,错误刚好被记录在errorno中,因此,就把lseek的错误打印出来了。所以第一次调用perror方法的时候会正常数据错误信息,但是如果连续调用第二次,由于第一次的perror调用已经把errorno设置成了undefined,所以连续的第二次,第三次...........第一亿次调用都会输出Illegal seek错误。
微信公众号:
各位粉丝,大家好,我是C语言中文网的站长(可以了解我),C语言中文网已经开通了微信公众号,名字是「码农宿舍」(不是C语言中文网哦),我将在这里和大家交流编程知识以及工作经验。大家可以搜索名字「码农宿舍」关注,也可以用微信扫描右边的二维码关注。
当你决定关注「码农宿舍」,你已然超越了99%的程序员!C语言编程的时候出现“程序已停止工作”的原因有哪些?_百度知道
C语言编程的时候出现“程序已停止工作”的原因有哪些?
运行时错误,很多时候是内存错误和数组越界(截止现在我遇到的)等问题。在运行时会出现错误,编译不出来!
数组越界是指。。。。。。
访问越界,就是本来就a[10],你却访问到(下标)9以外的啦!或者小于0!
哦 我自己再看看 谢谢!
恩,很多情况下,不是你主观的,而是你没意识到!虽然你觉得不会!好好看看自己看看吧!
我看不出来有什么不对啊能发代码你帮我看看吗?
其他类似问题
为您推荐:
其他2条回答
不是系统的问题,是程序本身的问题,之前有过,改了之后就能运行了。你知道怎么吧代码上传吗?
还可能是路径不对吧
如果程序本省问题那就再装吧
可能是程序变量调用的地址有误,可能被回收。
c语言编程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言常见出错专题总结 C语言常见出错专题总结 C语言常见出错专题总结
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
C语言常见出错专题总结
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 c语言中的 是什么意思 的文章

 

随机推荐