返回列表 发帖

[原创]关于fopen的一个bug!

[这个贴子最后由kkting在 2005/07/20 08:44pm 第 1 次编辑] fopen的一个bug 黑海 夕夜 这应该是微软的一个bug了吧,嘿嘿 具体情况是这样的,我简要写下代码: #include main() { FILE *fp; ..... ..... name = "con.mp3";//con.mp3是文件名 fp = fopen(name,"rb"); if(fp == NULL) { 语句1; } else { 语句2; } } 在当前文件夹下并没有con.mp3这个文件,按理来说这时打开不成功,fp应该是一个空值,会执行语句1, 但是它就会执行语句2。 最后发现: 发现只要是跟DOS文件句柄有关的关键字都如此,比如aux和prn,而且,这些关键字后面要紧跟一个点, 才会发生这种情况,点后面无论加入多少字符,都忽略,如果后面跟的是其它字符,就不会发生这个问题 。 一些相关的东西: con是dos的保留关键字,在系统文件句柄中,除非用户设置,默认是8个句柄,dos本身占用了其中的5个 ,前三个句柄用于输入(通常是键盘)、输出(通常是屏幕)和错误输出(通常也是屏幕),这三个句柄 dos起了个别名就叫con,另两个叫aux和prn,aux通常指的是com1,prn就是打印口。

返回列表 回复 发帖