昨天写代码的时候突然发现了一个问题,当使用fopen("<filepath>", "r")时,如果filepath不存在,那么fopen函数并不是像我们往常的认知那样返回NULL值,而是出现段错误,后来发现,fopen的文档( http://www.cplusplus.com/reference/cstdio/fopen/ )中,只读模式中有一句话说:The file must exist.,也就是说fopen在只读模式下filepath必须存在。

后来我又尝试了fopen在只写模式下,如果filepath为NULL或者一个没有创建文件权限的路径(Linux环境),那么fopen函数也不是像我们往常的认知那样返回NULL值,也是出现段错误(Linux环境下进程收到SIGSEGV信号而终止)。

05-11 10:59